0
這裏是JavaScript我使用.toSource用JavaScript數組
var testArr = [];
testArr["foo"] = "bar";
console.log(testArr.toSource());
//console.log(testArr["foo"]); //logs "bar"
輸出我得到的是[]
,這不是我所期待的。有人可以解釋這裏發生了什麼嗎?
這裏是JavaScript我使用.toSource用JavaScript數組
var testArr = [];
testArr["foo"] = "bar";
console.log(testArr.toSource());
//console.log(testArr["foo"]); //logs "bar"
輸出我得到的是[]
,這不是我所期待的。有人可以解釋這裏發生了什麼嗎?
好吧。 w3schools表示它不適用於IE。
而且我已經在Chrome中執行它和tipical控制檯> testArr
還印[]
即使> testArr["foo"]
印刷bar
。所以我認爲在輸出源代碼時不會重複使用排列的數組。
嘗試改變第一行:
var testArr = {};
這樣,這將是一個共同的目標。
// This declares an array
var testArr = [];
// THis assign an object property. Because it isn't a numeric array index,
// it doesn't show up as part of the array.
testArr["foo"] = "bar";
// .toSource() is not cross platform.
// JSON.stringify(testArr, undefined, 2) is better
console.log(testArr.toSource());
// Yes, because that property exists.
//console.log(testArr["foo"]); //logs "bar"
It sounds like what you really want is this:
// Make an object that can take string properties and not just integer indexes.
var testObject = {};
您正在將對象與數組混合。 –
@JoãoSilva你能解釋一下這意味着什麼嗎?在我看來,你不能擁有既是對象又是數組的東西。 – John
您可以將屬性附加到數組。最常見的例子是'length'屬性。 –