如何快速找出json資料呢如下圖所示,已知id,找出name值
假設你的原始資料是這樣的:
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; }
上面兩種方法的差別就是,如果不停的重複取得值,選擇第一種方法,因為只需要循環一次,後面不需要再循環了。 第二種方法每次取得都要重新循環一次
贊同樓上的說法,改變資料結構。把id變成key。把其他的東西變成value如果不需要其他的可以直接把name變成value
雷雷
假設你的原始資料是這樣的:
現在你可以一次的轉換一下資料格式為:
然後就可以根據id,直接拿到name了
其實上面的效率還是比較低的。
既然已經循環了,就直接從循環裡那對應的字段
上面兩種方法的差別就是,如果不停的重複取得值,選擇第一種方法,因為只需要循環一次,後面不需要再循環了。
第二種方法每次取得都要重新循環一次
贊同樓上的說法,改變資料結構。把id變成key。把其他的東西變成value如果不需要其他的可以直接把name變成value
雷雷