2016-10-24 51 views
0
data.forEach(function (object, index) { 

    console.debug(object.output); 
    //this consists of array object like below 
    //how to loop through these using higher order function so that I don't have to use for loop 

    [0]{"id": "453", "name":"keren"}, 
    [1]{"id": "453", "name":"amy"}, 
    [2]{"id": "453", "name":"samta"} 

我得到的錯誤說,object.output不是一個函數。 我喜歡高階函數的原因是爲了避免嵌套for循環獲取數組的長度,然後循環通過主數組內的嵌套數組。如何循環更高階的函數?

即使我使用傳統的for循環,我也無法獲得object.output的長度。

這裏面有什麼記錄:data.forEach(function (object, index) {....}

enter image description here

現在,我該怎麼辦環通輸出,每一個對象?

基於怪異answwer編輯:

data.forEach(function (object, index) { 
    Object.keys(object).forEach(function (key){ 

     if (typeof object[key] == 'object') { 
      console.debug(object[key]); 
      //how to iterate through each object here? 
      object[key].forEach(function(x){ 
      console.debug(x); 
      }); 
     } 

    }); 
}); 
+0

是'output'應該的屬性你正在使用的對象?如果是這樣,什麼資源證實了這一點? –

+0

@SamOnela,'output'是包含對象數組的對象 – 112233

+0

object.forEach(function(obj){console.log(obj);});這會給你數組中的對象 – Geeky

回答

1

檢查以下內容片斷

var arr=[ {"id": "453", "name":"keren"} 
 
      ,{"id": "453", "name":"amy"} 
 
      ,{"id": "453", "name":"samta"} 
 
      ] 
 

 
var object={"output":arr} 
 
Traverse(object); 
 

 
function Traverse(object){ 
 
Object.keys(object).forEach(function (key){ 
 
    console.log(object[key]); 
 
    if(typeof(object[key])==="object") 
 
      Traverse(object[key]); 
 
      
 
}); 
 
}

希望它可以幫助

+0

我已經嘗試過,並沒有幫助,因爲它說object.output不是一個函數。 .I截圖的數據層次結構,請參考我編輯的文章 – 112233

+0

我已經修改了代碼,請檢查並確認如果這是你尋找的 – Geeky

+0

現在可以得到的對象,但如何進一步循環通過每個輸出對象?請參考我編輯過的帖子上面 – 112233