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以另一种方式实现此目的?
答案 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);
}