84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
如何快速查找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
雷雷