数组Api .map()的使用

之前并没有过多的使用过这个Api,在此记录下对其的理解,方便以后多多使用。

首先是对map的说明:

var mappedArray = array.map(callback[, thisObject]);

    callback: 要对每个数组元素执行的回调函数。
    thisObject : 在执行回调函数时定义的this对象。

 其可以为数组中的每一个元素执行一次回调函数,并将返回值存入一个新数组中。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略。map 不会改变原有数组,调函数可以有三个参数:当前元素,当前元素的索引和当前的数组对象。

例子:

//例子,arr为原始数组
	var arr = [
	    {name: 'gonn', age: 20, sex: '1', No: '274200'},
	    {name: 'nowamagic', age: 30, sex: '0', No: '274011'},
	    {name: 'frie', age: 40, sex: '1', No: '274212'}
	    ];

	  
	//使用map更改数组每项的值,可对数组每一项元素内部进行增删改,也可以通过return null来删除数组的某项
	var arr2 = arr.map(function(item, i){
	    item.sex = item.sex == '0' ? '女' : '男';
	    if(item.name == 'tom'){
	        return null; //删除name为tom的项
	    }
	    return {
	        index: i,
	        name: item.name,
	        age: item.age + 30 + i,
	        sex: item.sex
	    };
	});

 

posted @ 2016-02-16 09:27  lvyi  阅读(382)  评论(0编辑  收藏  举报