【发布时间】:2017-01-05 09:37:00
【问题描述】:
假设我每次都动态加载具有不同属性和该类型对象数组的对象:
var obj = {name: someValue, key: someValue2};
var objArray = [{name: someValue, key: someValue2},{name: someValue, key: someValue3}];
我想找到包含 obj 的 objArray 的索引。 objArray 的某些元素可以具有相同的 name 属性但不同的 key 属性,因此不能通过 obj.name 进行搜索一个选项。到目前为止,我想出了这个解决方案:
var keys = [];
_.forEach(Object.keys(obj), function(key) {
keys.push(key, obj[key])
});
var index = _.findIndex(objArray, keys);
这很好用,但我正在寻找性能更好的东西,因为这个 objArray 可能非常大。
所以问题是:有没有更好的方法在对象数组中找到完全相同对象的索引?
更新: 我忘了提到键的名称没有指定,并且每次都可能不同。
【问题讨论】:
-
objectArray.indexOf(object) 能解决你的问题吗?
-
objectArray.indexOf(object) 似乎不起作用
-
@GirdhariAgrawal —
indexOf(object)不起作用...使用Array#findIndex -
还是只使用对象作为键?
标签: javascript object lodash