世界只因有你2017-05-18 10:49:13
假设你的原始数据是这样的:
var arr = [{
id:1,
name:'a'
},{
id:2,
name:'b'
}];
现在你可以一次性的转换一下数据格式为:
var obj = {};
arr.forEach(function (v,i) {
obj[v.id] = v;
});
obj = {
1:{
id:1,
name:'a',
},
2:{
id:2,
name:'b'
}
};
然后就可以根据id,直接拿到name了
obj[id].name
其实上面的效率还是比较低的。
既然已经循环了,就直接从循环里那对应的字段
function getNameById(id) {
var name = '';
arr.forEach(function (v,i) {
if (v.id==id) {
name = v.name;
console.log(i);
return;
}
});
return name;
}
上面两种方法的区别就是,如果不停的重复获取值,选择第一种方法,因为只需要循环一次,后面不需要再循环了。
第二种方法每次获取都要重新循环一遍