假设你的原始数据是这样的: 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,直接拿到name了
其实上面的效率还是比较低的。
既然已经循环了,就直接从循环里那对应的字段
上面两种方法的区别就是,如果不停的重复获取值,选择第一种方法,因为只需要循环一次,后面不需要再循环了。
第二种方法每次获取都要重新循环一遍