世界只因有你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;
}
上面兩種方法的差別就是,如果不停的重複取得值,選擇第一種方法,因為只需要循環一次,後面不需要再循環了。
第二種方法每次取得都要重新循環一次