如何使用lodash检查一个字段匹配的第一个出现的数组?

时间:2014-01-23 10:15:15

标签: javascript lodash

我目前正在使用以下内容:

   for (var i = 0; i < x.length; i++)
      if (x[i].id === userId)
         return x[i].name;

返回用户名。

使用Lo-Dash有更有效的方法吗?请注意,id是唯一的,因此如果找到则无需再查看。

2 个答案:

答案 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;
  }

这是循环对象数组的最有效方法。 首先,你不要每次迭代检查数组的长度。 其次,当你找到你的项目时,你就会打破循环。

编辑:如果你不关心从后面开始的遍历顺序,那就更快了。