我的編碼日不好。我根本不明白爲什麼this code on fiddle沒有達到我期望的效果。Javascript confusion:對象與數組還是對象數組?
var masterList = new Array();
var templates = new Array();
templates.push({"name":"name 1", "value":"1234"});
templates.push({"name":"name 2", "value":"2345"});
templates.push({"name":"name 3", "value":"3456"});
templates.push({"name":"name 4", "value":"4567"});
templates.push({"name":"name 1", "value":"5678"});
templates.push({"name":"name 2", "value":"6789"});
templates.push({"name":"name 3", "value":"7890"});
templates.push({"name":"name 4", "value":"8901"});
var addUnique = function(thatObj) {
var newList = new Array();
if (masterList.length == 0) {
// add the first element and return
masterList.push(thatObj);
return;
}
for (j=0; j<masterList.length; j++) {
if (masterList[j].name != thatObj.name) {
newList.push(thatObj);
}
}
// store the new master list
masterList = newList.splice(0);
}
for (i=0; i<8; i++) {
addUnique(templates[i]);
}
console.log(masterList);
console.log(masterList.length);
在我(謙虛)看來,它應該通過模板陣列,填補了templateArray的每個元素的masterList,但只造成主陣列中的4個元素,因爲這被命名爲相同的那些應該被「覆蓋」,即不復制到中間數組中,因此不會被繼承和替換。相反,我在masterList中獲得一個條目。
哪裏有美好的過去,強類型的語言。指針。嘆。我只是沒有得到什麼樣的混亂JavaScript正在做(當然,我正在混亂當然),但我責備JS不理解我...