我目前正在使用以下内容:
for (var i = 0; i < x.length; i++)
if (x[i].id === userId)
return x[i].name;
返回用户名。
使用Lo-Dash有更有效的方法吗?请注意,id是唯一的,因此如果找到则无需再查看。
答案 0 :(得分:0)
使用_lodash是否有更有效的方法?
没有。您不能比普通的原始for
循环更有效。但你可以使用lodash在更少的代码中完成它。
您可以使用_.where
(请注意,它会返回一个新数组,而不是一个对象):
return _.where(x, { id: userId})[0];
但是它的效率会低于你的代码,因为它不会在找到第一次出现时停止检查。输入时间略短。你真的不需要关心简单循环的效率。
答案 1 :(得分:0)
var i = x.length;
while ( i--)
if (x[i].id === userId)
{
return x[i].name;
break;
}
这是循环对象数组的最有效方法。 首先,你不要每次迭代检查数组的长度。 其次,当你找到你的项目时,你就会打破循环。
编辑:如果你不关心从后面开始的遍历顺序,那就更快了。