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中的一个常见错误。