关于javascript:如何在对象数组中查找空对象的索引

How to find index of empty object in array of object

本问题已经有最佳答案,请猛点这里访问。

如果我有一个类似于[a:'b',]的数组,如果我试图找到元素的索引。那么我就无法得到正确的索引。

我尝试过indexof、findindex和lodash的findindex,但都返回了-1而不是1,可能是因为引用。

实际索引应该是1而不是-1。


如果搜索空对象,则搜索目标对象的同一对象引用。

您可以搜索不带键的对象。

1
2
3
4
var array = [{ a: 'b' }, {}] ,
    index = array.findIndex(o => !Object.keys(o).length);

console.log(index);


您可以使用findIndexObject.keys()

1
2
3
4
5
const arr = [{a:'b'}, {}];

const emptyIndex = arr.findIndex((obj) => Object.keys(obj).length === 0);

console.log(emptyIndex);


您可以使用Object.keys(obj).length === 0 && obj.constructor === Object来检查空对象。

1
2
3
4
5
6
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);

1
2
3
4
5
6
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);