簡體   English   中英

JavaScript在對象鍵值對中刪除數組括號

[英]JavaScript drops Array Brackets in Object Key value pair

大家好,我今天發現嘗試在JavaScript中設置鍵值對有些奇怪。 我知道對象的鍵始終是“字符串化的”,因此鍵值對始終是字符串:值,但是今天當我使用數組嘗試時,發生了一些奇怪的事情。 下面的例子:

var ob = {}; 

var a = [2,4]; 

ob[a] = 10; 

console.log("this is ob ", ob);

在這里,我嘗試添加鍵[2,4]映射到10。但是,控制台日志返回的字符串2,4映射到10,而不是字符串[2,4]映射到10。 ?

使用對象或數組作為屬性名稱,不會調用JSON#stringify ,而是對象的toString方法,該方法在數組中返回以逗號連接的數組元素。

在示例中,我重寫了Array#toString方法,您可以看到生成的屬性名稱反映了這一點:

 var ob = {}; var a = [2,4]; a.toString = function() { return 'cats' }; // override toString ob[a] = 10; console.log("this is ob ", ob); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM