JavaScript - 将对象数组中的属性识别为数组

标签 javascript arrays

我很高兴这里已经有一些关于如何识别数组的问题。但是,我找不到任何有关识别对象数组中的数组的信息。

给定以下数组:

var pagesArray = [{
   category: 'pages1',
   pages: [
       'firstPage1',
       'secondPage1',
       'thirdPage1',
       'fourthPage1']
   }
}];

我尝试循环并确定 pages 也是一个数组,如下所示:

编辑

实际上,下一个示例中的 o 应该是 pagesArray,但我将其保留为原样,以便答案有意义。

for(var p in o){     
    console.log(typeof p);
    console.log(p instanceof Array)
    console.log(Object.prototype.toString.call(p))                         
}    

pages 返回的输出是:

string 
false 
[object String] 

有没有办法正确识别该属性是一个数组,还是我误解了什么?

最佳答案

对于这个答案,我假设您正在使用 for..in 循环来迭代 pagesArray 内对象的属性,即 pagesArray [0].

for..in 迭代,而不是值。键始终是字符串,因此在循环中,p 始终是字符串(此处为 "categories""values")。要获取与键关联的值,请使用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))                         
}

关于JavaScript - 将对象数组中的属性识别为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18189767/

相关文章:

javascript - 如何在没有滚动条的情况下滚动 Div?

javascript - 无法链接在云代码中返回 Promise 的自定义函数

c++ - 如何使用 == 运算符比较数组的元素

arrays - 我如何在 GoLang 中创建一个可以容纳多种数据类型的数组?

c - C 中文件范围内可变修改的数组

javascript - 在真正的 MVC(桌面)应用程序中单例 View 有什么好处?

javascript - Bootstrap pill 内容不会消失

javascript - Ajax 返回空白响应

javascript - Action Script 3. 如何控制二级数组中的元素?

python - 使用补充列从 numpy 数组初始化 DataFrame