在lodash _.findIndex中使用变量名作为属性名

时间:2015-02-16 17:22:58

标签: lodash

var ids = ["John", "Mary", "Joe", "Chase", "Sarah"];

for (var i = 0; i < ids.length; i++) {
  var id = ids[i];
  var max = 25; // fixed for simplicity
  var maxObj = _.findIndex(people['scores'], { id : max });
}

以上不起作用,因为_.findIndex为maxObj返回-1。但是,如果我将属性名称显式定义为字符串(而不是使用id变量),则可以正常工作。

var maxObj = _.findIndex(people['scores'], { "John" : max });

有没有办法在lodash中将变量值传递给属性名称,或者使用lodash以另一种方式实现此目的?

1 个答案:

答案 0 :(得分:2)

您可以使用动态密钥构建对象文字,然后将其提供给_.findIndex

var ids = ["John", "Mary", "Joe", "Chase", "Sarah"];

for (var i = 0; i < ids.length; i++) {
  var id = ids[i];
  var max = 25; // fixed for simplicity
  var obj = {};
  obj[id] = max;
  var maxObj = _.findIndex(people['scores'], obj);
}