2015-11-03 57 views
1

我有2個對象數組。我需要將其中一個對象值添加到名稱匹配的第二個數組中。用最少的代碼做這件事最有效的方法是什麼?組合或添加到具有公共值的數組

firstArray = [ 
       {name: "Henry", balance: 2176.90, Age: 26}, 
       {name: "Jon", balance: 122.10, Age: 31}, 
       {name: "Dave", balance: 258.23, Age: 42}, 
       {name: "Tom", balance: 591.00, Age: 19}, 
       {name: "Mary", balance: 12.54, Age: 56}, 
       {name: "Rick", balance: 5287.25, Age: 29}, 
       {name: "Jane", balance: 6527.20, Age: 24} 
      ] 

secondArray = [ 
       {user: "Henry", city: "New York", dept: "Sales"}, 
       {user: "Vanessa", city: "New York", dept: "Sales"}, 
       {user: "Susan", city: "Dallas", dept: "Marketing"}, 
       {user: "Jon", city: "New York", dept: "Management"}, 
       {user: "Dave", city: "Dallas", dept: "Marketing"} 
       {user: "Jay", city: "Spokane", dept: "IT"} 
      ] 

secondArray = [ 
       {user: "Henry", city: "New York", dept: "Sales", balance: 2176.90}, 
       {user: "Vanessa", city: "New York", dept: "Sales", balance: "N/A"}, 
       {user: "Susan", city: "Dallas", dept: "Marketing", balance: "N/A"}, 
       {user: "Jon", city: "New York", dept: "Management", balance: 122.10}, 
       {user: "Dave", city: "Dallas", dept: "Marketing", balance: 258.23} 
       {user: "Jay", city: "Spokane", dept: "IT", balance: 591.00} 
      ] 

回答

0

您需要遍歷數組,因此沒有更有效的方法來處理這個問題。

for (var key in firstArray) { 
    var obj = firstArray[key]; 
    for (var key2 in secondArray) { 
     obj2 = secondArray[key2]; 
     if (obj['user'] == obj2['user']){ 
      //merge stuff here 
      secondArray[key2]['balance']=obj['balance']; 
      break; //once we found the equal names we can skip the rest. 
     } 
    } 
    // ... 
} 
+0

怎麼樣通過使用jQuery? –

+0

同樣,您可以使用$ .each循環,但一般結構保持不變。 –