我有一个动态对象,它将添加新对象并更新现有数组。我需要查看以下问题
是数组对象
[
"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
}
]
]
答案 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不支持ForEach
。 for
循环可以正常工作。
答案 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