获取并检查数组的javascript数组

时间:2014-08-12 06:11:40

标签: javascript jquery arrays json multidimensional-array

我有一个动态对象,它将添加新对象并更新现有数组。我需要查看以下问题

  1. wheather数组有另一个数组吗?
  2. 如何从数组数组中获取数据?
  3. 下面的

    是数组对象

    [
    "Stories",
    "Tasks",
    "In Progress",
    "In Review",
    "Completed",
    [
        {
            "divName": "content-container2",
            "content": "us 2345",
            "topPos": 109,
            "leftPos": 150
        },
        {
            "divName": "content-container3",
            "content": "Description",
            "topPos": 98,
            "leftPos": 382
        },
        {
            "divName": "content-container4",
            "content": "12212",
            "topPos": 110,
            "leftPos": 644
        }
    ]
    ]
    

3 个答案:

答案 0 :(得分:1)

我正在解释我理解的内容。我所知道的

我不知道是否有任何内置函数,你可以迭代数组并获得答案。

Ques:- wheather array has another array?

您可以使用Array.some进行此操作。

var arr = [1,2,3,[1,2,3],5]
arr.some(function(element){
     return Array.isArray(element)
 })// returns true

如果任何元素是数组,它将返回true

Ques:- how to get data from array of array ?

您可以使用forEach并检查是否是数组访问元素

var arr = [1,2,3,[1,2,3],5];
arr.forEach(function(element){
      if(Array.isArray(element)){
         console.log(element[0])
       }
}); //prints 1

如果它提供了一种开始的方式,那很好。

注意: - Some& IE8不支持ForEachfor循环可以正常工作。

答案 1 :(得分:0)

如评论中所述,您可以使用isArray方法

var arr=/* your array */
var pos=[];
var hasArray=false;
for(var i=0;i<arr.length;i++)
{
   if(Array.isArray(arr[i])){
      hasArray=true;
      pos.push(i);
    }
}
// now getting sub arrays
for(var i=0;i<pos.length;i++)
{
   var subArr=arr[pos[i]];
   /* do something with this subarr */
}

答案 2 :(得分:0)

你可以通过数组循环,检查元素是否为数组:

for( var i = 0, len = arr.length; i < len; i++) {
    //check if arr[i] is Array
    if(arr[i] instanceof Array) {
        //its array
        var objArr = arr[i];
        //loop thru all objects
        for(var x = 0, xlen= Object.keys(objArr).length; x < xlen; x++) {
            //loop thru object to get all values
            var obj = objArr[x];
            for(var k in obj) {
                console.log( "Key:"+ k + " value:" + obj[k] );
            }
        }
    }
}

演示:: jsFiddle