gpt4 book ai didi

JavaScript - 检查对象的属性是否是数组

转载 作者:行者123 更新时间:2023-11-28 18:54:38 26 4
gpt4 key购买 nike

我有以下对象:

const foo = {
prop1: 'I am a string',
prop2: [
{ prop2_1: 'I am a sub string' },
{ prop2_2: 'I am a sub string' },
],
prop3: 'I am a string',
prop4: [
{ prop4_1: 'I am a sub string' },
{ prop4_2: 'I am a sub string' },
],
}

在 JavaScript(即不是 jQuery)中,如何循环 foo 的属性并确定它的属性是否是数组?我尝试了这个但没有运气:

for (const prop in foo) {
if (prop!== undefined) {
if (Object.prototype.toString.call(prop) === '[object Array]') {
prop.map((child) => {
// do something
});
}
}
}

最佳答案

你想要Array.isArray

您可能需要对此进行填充。

非递归

Object.keys(foo).some((k) => Array.isArray(foo[k]));

递归

function containsArr(o) {
for (var k of Object.keys(o)) {
if (recursive(o[k])) {
if (containsArr(o[k])) {
return true;
}
continue;
}

if (Array.isArray(o[k])) {
return true;
}
}

return false;
}

// We recurse into functions
// and plain objects.
function recursive(o) {
return /^\[object (Object)| (Function)\]/
.test(Object.prototype.toString.call(o));
}

关于JavaScript - 检查对象的属性是否是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33861159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com