2016-04-29 40 views
0

我試圖做一個對象(A)和一個對象(B)的數組之間的匹配。試圖做一個從對象的對象到對象數組之間的匹配

對象對象中的每個對象都有一個PID。對象數組中的每個對象都有一個PID。我想匹配A和B,這樣我就可以從A中獲得職業,然後將職業附加到B中的每個對象上。所以,我試圖將PID和職業合併爲一個。這甚至可以完成?

所以,這裏是一個可能看起來像:

{ 
    emp1: { 
    PID: 2430 
    Occupation: Welder 
    }, 
    emp2: { 
    PID: 432, 
    Occupation: Electrician 
    } 
} 

和B:

[ 
    { 
    PID: 432 
    }, 
    { 
    PID: 2430 
    } 
] 

可以這樣使用類似lodash庫輕鬆地完成?

+0

A是無效的JSON格式 – Dalorzo

+2

@Dororzo和誰說'布特JSON?它仍然是一個有效的JS對象 – messerbill

+0

我修好了對不起 – user1354934

回答

1

你需要在循環內部運行一個循環來匹配從B到A(或其他方式)的元素,這非常昂貴。這本來是容易得多,如果你可以改變的結構,比方說,A

A = { 
    2430: { 
     name: "John", 
     occupation: "Welder" 
    }, 
    432: { 
     name: "John", 
     occupation: "Electrician" 
    } 
} 

然後你就可以在A訪問數據是這樣的:A[2430]

那麼你的代碼可能看起來像:

B = B.map(function(el) { 
    return { 
     PID: el.PID, 
     occupation: A[el.PID].occupation 
    } 
}); 
console.log(B); 

所以你只有一個循環。您還可以從將來更快地訪問A的數據中受益。

+0

非常感謝!讓我給這個鏡頭。 – user1354934

相關問題