在 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);
}
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);
}