我無法弄清楚爲什麼這段代碼是給我For循環迭代<VS <= JavaScript的基本面
TypeError: Cannot read property '0' of undefined
function fromListToObject(array) {
// make new empty object to store key:value in
var obj = {};
// loop over the given array
for (var i = 0; i <= arr.length; i++){
//every iteration keys gets stored with new key
var keys = arr[i][0];
// same here
var values = arr[i][1];
//pushing new key:value into obj
obj[keys] = values;
}
return obj;
}
var arr= [['1', 'One'], ['2', 'Two'], ['3', 'Three'], ['4', 'Four'], ['5', '5']];
var result = fromListToObject(arr);
console.log(result);
我已經試過: 當我在fromListToObject()函數內運行for循環時,只需i < arr.length
就可以工作。我試着尋找答案,但我可能會以錯誤的方式提問。 循環不應該使用「=」運算符嗎?
它的下跌有@ 4castle – turmuka
數組從0開始,所以array.length,是1過去的最後一個項目..'< '是正確的比較。 – Keith
它實際上不會影響問題或結果,具體而言,但是您的代碼中存在細微的錯誤;你將一個參數作爲'array'傳遞給函數,然後在函數內引用外部變量'arr'。如果你再次調用該函數(例如'fromListToObject(arr2)'),你不會得到你期望的結果。 – Claies