繁体   English   中英

如何检查只包含空对象[{}]的数组

[英]How to check for array containing only an empty object [{}]

我有一个变量,如下所示。

let response = [
 {}
];

这是一个空对象的数组。 我应该采取什么样的检查来确定这种反应是否与此完全相同。

[{}] === response; // returns false

我希望有一个检查,如果响应是[{}] ,我将如何返回false。

堆栈溢出已经存在问题,询问如何检查空对象。 我的问题是如何检查具有空对象的数组。 完全不同。 这不是任何问题的重复。

首先使用Array.isArray检查它是否为数组,然后检查.length以查看它是否为1,然后检查第一个元素是否为空对象( typeofObject.keys().length === 0 )。 那样你就会非常确定这是你想要的。

另一种选择是使用json: JSON.stringify(response) ==== '[{}]' 请注意响应中的循环依赖性。

你可以简单地做:

let response = [{}];

console.log(JSON.stringify([{}]) === JSON.stringify([{}])); // true,

但如果您的回答是循环的,那么这将失败。

另一种方法是:

let response = [{}];


console.log(
  Array.isArray(response) &&
    response.length === 1 &&
    Object.prototype.toString.call(response[0]) === '[object Object]' &&
    Object.getOwnPropertyNames(response[0]).length === 0
); // true

怎么样:

Object.keys(response[0] || {}).length === 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM