如何将typeof数组[]与typeof对象{}进行比较



大家好,我正在努力解决这个问题,但不知道如何将对象类型的数组与对象类型进行比较。。。基本上如何从我的最终计数中排除所有不是";真实的";对象,这就是问题所在:

此函数接受不同数据类型的数组。它应该返回数组中对象数量的计数。

我的代码应该能更好地解释我的意思:

function countTheObjects(arr) {
let howManyObj = 0;
arr.forEach(function (type) {
console.log(typeof type);
if (typeof type === "object" && type !== null) {
howManyObj++;
}
});
return howManyObj;

}
console.log(
countTheObjects([1, {}, [], null, null, "foo", 3, 4, 5, {}, {}, {}, "foo"])
);

最后的计数是5,但应该是4。我试图在条件中添加

(typeof type === "object" && type !== null && type !== [])

但没有结果。我正在设法弄清楚如何把[]..排除在计数之外。。

如果我console.log(typeof[](,结果是object。所以我觉得我处理这个问题的方式不对。

感谢您的支持。

您可以使用Array.isArray((进行检查。

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray

if (typeof type === "object" && type !== null && !Array.isArray(type)) {
howManyObj++;
}

相关内容

  • 没有找到相关文章

最新更新