Map @mpjme
2017-08-10 本文已影响10人
6659a0f02826
var animales = [
{name : 'fluffykins', species : 'rabbit'},
{name : 'caro', species : 'dog'},
{name : 'hamilton', species : 'dog'},
{name : 'harold', species : 'fish'},
{name : 'ursula', species : 'cat'},
{name : 'jimmy', species : 'fish'}
]
// 需求:列出animale的name
// 一、以下是for循环写法
// var names =[];
// for(var i=0; i< animales.length; i++){
// names.push(animales[i].name )
// }
// 二、以下是Map的写法
var names = animales.map(function(animale){
return animale.name
});
//注:还可以return其他的任何想要的结果:return animale.name + ‘is’ + animale.species等
//如果用箭头函数实现,又将节省一部分代码
var names = animales.map((animale) => animale.name);
//或者
var names = animales.map((X) => X.name);
console.log(names)
- map简介
对数组的每个元素调用定义的回调函数并返回包含结果的数组。
- 语法
array1.map(callbackfn[, thisArg])
- 参数
- array1 必选。 一个数组对象。
- callbackfn 必选。 最多可以接受三个参数的函数。 对于数组中的每个元素,map 方法都会调用 callbackfn 函数一次。
- thisArg 可选。 callbackfn 函数中的 this 关键字可引用的对象。 如果省略 thisArg,则 undefined 将用作 this 值。
- 返回值
一个新数组,其中的每个元素均为关联的原始数组元素的回调函数返回值。
备注:
项目中,map 里面传递的函数中可以加载两个参数,一个是数组元素本身,第二个是 index 值。
map 属于固定函数接口,网上文章应该很多。
就像上面那个框里的,items 和i ,这两个参数,items 没有实现不了,items和i 颠倒顺序也实现不了。