超级实用函数map,啥也不说了,看下面这个例子吧
//扩展原型对象
Array.prototype.map = function(fn){
var a = [];
for(var i = 0; i < this.length; i++){
var value = fn(this[i], i);
if(typeof value === 'undefined' || value === null){
continue; //如果函数fn返回null,则从数组中删除该项
}
a.push(value);
}
return a;
};
//例子,aa为原始数组
var aa = [
{name: 'realwall', age: 20, sex: '1', No: '274200'},
{name: 'jim', age: 30, sex: '0', No: '274011'},
{name: 'tom', age: 40, sex: '1', No: '274212'}
];
//使用map更改数组每项的值,可对数组每一项元素内部进行增删改,也可以通过return null来删除数组的某项
var bb = aa.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
};
});
console.log(bb);