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

Using variable names as property names in lodash _.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 maxObj = _.findIndex(people['scores'], { id : max });
}

以上不适用于 maxObj 的 _.findIndex returns -1。但是,如果我将 属性 名称显式定义为字符串(而不是使用 id 变量),它会起作用。

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

有没有办法将变量值传递给 lodash 中的 属性 名称或使用 lodash 实现此目的的替代方法?

您可以使用动态键构造对象文字,然后将其提供给 _.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);
}