2015-02-10 63 views
1

如何动态深入挖掘我的对象数组?让我解释。说我有这个数组对象与子阵:动态深入挖掘对象的嵌套数组

var arrOfObjects = [ 

    { 
     name: 'something', 
     subArray: [ { 
      name: 'nested something' 
     } ] 
    }, 
    { 
     name: 'something else', 
     subArray: [ { 
      name: 'nested something else' 
     } ] 
    }]; 

,并知道我需要修改

var referenceArr = [1,0]; 

如何使用这个参考产生在适当的位置,其排列层次结构中的一个参考我的数据阵列,在这种情况下,我希望去

arrOfObject[1]['subArray][0]['name']; 
// 'subArray' and 'name' are always the same 

参考阵列可以是任意长度,所以

var referenceArr= [0]; 

指示修改:

arrOfObject[0]['name']; 

回答

0

试试这个检查这个jsfiddle

var arrOfObjects = [ 

    { 
     name: 'something', 
     subArray: [ { 
      name: 'nested something' 
     } ] 
    }, 
    { 
     name: 'something else', 
     subArray: [ { 
      name: 'nested something else' 
     } ] 
    }]; 

for(var i=0; i<arrOfObjects.length;i++){ 
    alert(arrOfObjects[i].subArray[0].name) 
} 
2

使用此功能:

function getValue(source, path){ 
    var result = source; 
    while(path.length){ 
     result = result[path.shift()]; 
     if(path.length && !result.subArray) 
      throw new Error('Incorrect path!'); 
     else if(path.length) 
      result = result.subArray; 
     else 
      result = result.name; 
    } 
    return result; 
} 

fiddle