如果我有一个类似[{a:'b'},{}]的数组,并且尝试查找元素{}的索引。然后我无法获得正确的索引。
我尝试了indexOf,findIndex和lodash的findIndex,但是由于引用,它们都返回-1而不是1。
实际索引应为1而不是-1。
答案 0 :(得分:3)
您可以使用findIndex
和Object.keys()
:
const arr = [{a:'b'}, {}];
const emptyIndex = arr.findIndex((obj) => Object.keys(obj).length === 0);
console.log(emptyIndex);
答案 1 :(得分:3)
如果搜索空对象,则搜索与目标对象相同的对象引用。
您可以搜索没有键的对象。
var array = [{ a: 'b' }, {}] ,
index = array.findIndex(o => !Object.keys(o).length);
console.log(index);
答案 2 :(得分:0)
您可以使用Object.keys(obj).length === 0 && obj.constructor === Object
来检查空对象。
var a = [{a:'b'},{}]
var index;
a.some(function (obj, i) {
return Object.keys(obj).length === 0 && obj.constructor === Object ? (index = i, true) : false;
});
console.log(index);
var a = [{a:'b'},{}]
var index;
a.some(function (obj, i) {
return Object.keys(obj).length === 0 && obj.constructor === Object ? (index = i, true) : false;
});
console.log(index);