我有兩個數組(initialArray和updatedArray),它們都有18個元素。將一個較小的數組(具有鍵值對的對象元素)組合到一個更大的數組中
initialArray中的每個元素都是一個包含5個鍵值對的對象。
initialArray:
[0]
head: 'hi',
a: '',
b: '',
c: '',
d: ''
[1]
head: 'yo',
a: '',
b: 'old',
c: '',
d: ''
.
.
.
updatedArray就像initialArray但: 1)它不會有所有5個鍵值(僅圖2和3之間,包括頭)。 2)initialArray具有空白或舊值,而updatedArray將被新/填充)3)元素以不同的順序 例如 。
updatedArray:
[0]
head:'yo',
b: 'bb',
d: 'dd'
[1]
head:'hi',
b: 'bb',
a: 'aa'
.
.
.
有人能在從updatedArray與鍵值覆蓋initialArray(用「頭」鍵,以配合陣列之間的元素)提供了一些建議。頭部鍵不會被更新,但其他鍵值是。
我會在需要的時候運行這幾次,所以我不能假設initialArray將始終有空白值。如果空白值不會被覆蓋,那麼他們保留在結果如下圖所示:
combinedArray:
[0]
head: 'hi',
a: 'aa',
b: 'bb',
c: '',
d: ''
[1]
head: 'yo',
a: '',
b: 'bb',
c: '',
d: 'dd'
.
.
.
什麼建議嗎?我目前的嘗試是試圖for循環做一些事情以3:
for (var k in updatedArray){
for (var kk in initialArray){
if(updatedArray[k].head ==initialArray[kk].head){
for (var kkk in updatedArray[k][kk]){
initialArray[k][kk][kkk] = updatedArray[k][kk][kkk];
}
}
}
}
在這種情況下
,k是指數(0,1),KK是關鍵(頭,A,B等),以及KKK是鍵值的值。儘管這看起來不起作用