[英]Different ways for adding key/value pair to a Map in JavaScript
根據MDN Map的set方法,在javascript 中將鍵/值對添加到地圖的唯一方法是set方法。 我想知道當我們添加一個帶有方括號的鍵/值對時,地圖的行為是什么,如下所示;
const testMap = new Map();
testMap.set( 1,"firstValue" );
testMap[2] = "secondValue";
console.log( testMap );
console.log( testMap[ 2 ] );
console.log( testMap[ '2' ] );
看來我們可以同時擁有地圖和對象! 有人可以向我解釋嗎? 我知道Map是一種對象,但是這種行為會導致很多錯誤。 有什么辦法可以防止這種情況? 順便說一句,如果您添加帶有方括號的鍵/值對,那么您將無法使用get方法來檢索它。
沒有任何示例無法按預期運行,當您使用方括號時,您是在testMap
對象上設置屬性而不設置條目。 例如,您可以使用forEach
方法遍歷地圖來確認這一點。
const testMap = new Map(); testMap.set(1, "firstValue"); testMap[2] = "secondValue"; testMap.forEach(x => console.log(x));
如您所見,控制台上沒有secondValue
,也就是說,沒有具有該值的映射條目。 因此,它從未被添加到地圖中。
並且
testMap.set(1, "firstValue");
,testMap.set(1, "firstValue");
不等同於testMap[1] = "firstValue";
允許您這樣做的唯一原因是因為javascript允許您將屬性添加到活動對象,但未將其添加到地圖項。參考: MDN地圖
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.