我有兩個「散列」數組。我需要將它們合併到一起,以便最終結果是另一個哈希數組,除了條目數是兩個數組的產物。用jQuery.extend合併循環:上一個值總是相同的?
inhabitants = {}
idx = 0
for (i=0; i<persons.length; i++) {
person = persons[i];
for (j=0; j<houses.length; j++) {
house = houses[j];
console.log(house);
inhabitants[idx] = $.extend(person,house);
console.log(inhabitants[idx]);
idx++;
}
}
我最終得到的是一個愚蠢的條目數,取決於$ .extend()行中參數的排序。並且添加的「房子」條目始終是陣列中的最後一個條目。
顯然,這個來自jQuery的$ .extend()並沒有達到我期望的水平。誰能幫忙?
我不確定我是否理解,但是您可以嘗試'.extend({},person,house)'而不是?你目前正在覆蓋'person'。 – pimvdb
pimvdb,如果這兩個哈希值之間的鍵不同,那麼從房子的密鑰不會被添加到個人?我會嘗試你所說的。 – AKWF
這是正確的,但你是否知道你基本上將'person'分配給'居民[idx]'?請注意,以前分配的對象也會因爲嵌套循環中只有一個'person'而被更改。 – pimvdb