JavaScript—将对象数组中的属性标识为数组
我很感激这里已经有一些关于如何识别数组的问题。但是,我找不到任何关于在对象数组中标识数组的内容 给定以下数组:JavaScript—将对象数组中的属性标识为数组,javascript,arrays,Javascript,Arrays,我很感激这里已经有一些关于如何识别数组的问题。但是,我找不到任何关于在对象数组中标识数组的内容 给定以下数组: var pagesArray = [{ category: 'pages1', pages: [ 'firstPage1', 'secondPage1', 'thirdPage1', 'fourthPage1'] } }]; 我试着循环并确定页面也是这样一个数组: 编辑 实际上,下一个例子中的o应该是pages
var pagesArray = [{
category: 'pages1',
pages: [
'firstPage1',
'secondPage1',
'thirdPage1',
'fourthPage1']
}
}];
我试着循环并确定页面
也是这样一个数组:
编辑
实际上,下一个例子中的o
应该是pagesArray
,但我将其保持原样,以便答案有意义
for(var p in o){
console.log(typeof p);
console.log(p instanceof Array)
console.log(Object.prototype.toString.call(p))
}
为页面返回的输出为:
string
false
[object String]
有没有办法正确识别属性是数组还是我误解了什么?pagesArray[0]。虽然有一个额外的大括号导致语法错误,但数组的pagesinstanceof
工作正常
对于这个答案,我假设您正在使用For..in
循环来迭代pagesArray
中对象的属性,即pagesArray[0]
for..in
迭代键,而不是值。键始终是字符串,因此在循环中,p
始终是字符串(此处,“类别”
,或“值”
)。要获取与键关联的值,请使用o[p]
。您想测试o[“pages”]
是否为数组,而不是字符串“pages”
是否为数组
for(var p in o){
var value = o[p];
console.log(typeof value);
console.log(value instanceof Array)
console.log(Object.prototype.toString.call(value))
}
你试过“长度”吗?SyntaxError:Unexpected token}
在你的“数组”上不清楚什么是o
。你的答案是:宾果。这是javascript中的一个常见错误。