object和map儲存的都是鍵值對組合,本文將介紹json物件和map的使用,對比它們之間的差異
1.1 json物件
json物件的使用比較簡單,他是key-value
形式的鍵值對
,直接用花括號包裹起來即可定義,使用時用.號加key值得形式客戶獲取到value的值,也可以用這個方法來改變value值,示例如下:
var a =
console.
log(a);//
console.
log(
typeof a)
;//object
console.
log(object.prototype.tostring.
call
(a))
;//[object object]
console.
log(a.key1)
;//value1
a.key1 =
"value1-change"
;console.
log(a.key1)
;//value1-change
1.2 map物件
map物件使用時需要使用new map()
來定義,使用set(key, value)
來給map物件新增值,使用get(key)
,來獲取map物件的值,使用delete(key)
來刪除map的值,示例如下:
var a =
newmap([
["key1"
,"value1"]]
);console.
log(a)
;//map(1)
a.set
("key2"
,"value2");
console.
log(a)
;//map(2)
console.
log(a.
get(
"key2"))
;//value2
a.delete
("key2");
console.
log(a)
;//map(1)
猜測json物件和map物件的遍歷並沒有本質上的區別,即對json物件和map的遍歷是通用的。
var a =
;var b =
newmap([
["key1"
,"value1"]]
);console.
log(
json
.stringify
(a));//
console.
log(
json
.stringify
(b))
;//{}
for(
var key in a)
/*列印undefined
for(var key in b)*/
/*uncaught typeerror: a is not iterable
for(var value of a)*/
for(
var value of b)
/*vm252:1 uncaught typeerror: a.foreach is not a function
a.foreach((value, key) => );*/
b.foreach
((value, key)
=>
);
根據上面的示例,發現乙個有趣的現象。之前猜測是錯誤的,顯然,上面的三種遍歷方法對於陣列來說是通用的,但是對於json物件和map是有區別的,在這裡不去細究,只需要記住:
json物件和map在使用上的最大差異是:json的key值只能是字串;map的key值可以是物件
:
var keyob =
;var a =
;var b =
newmap()
;b.set(keyob,
"value1");
console.
log(b)
;//map(1) => "value1"}
console.
log(b.
get(keyob));
//value1
a[keyob]
="value2"
;console.
log(a);//
console.
log(a[keyob]);
//value2
console.
log(a[
"[object object]"])
;//value2
多數時間是使用json物件來儲存鍵值對,只用當需要key值是物件的情況下需要用的map。 Js中Map物件的使用
1 定義 鍵 值對的集合。2 語法 mapobj new map 3 備註 集合中的鍵和值可以是任何型別。如果使用現有金鑰向集合新增值,則新值會替換舊值。4 屬性 建構函式 指定建立對映的函式。prototype 原型 為對映返回對原型的引用。size 返回對映中的元素數。5 方法 set 新增乙個...
js之旅(七)js中this
本文講述js中this的指向 介紹es5和es6中this的不同 在js es5中,使用的是function函式,誰在呼叫function,this就指向誰,有以下幾個特點 1.1 this最終指向的是呼叫它的物件 這個特點的就是es5中this的指向,其它特點都是對它的補充,如下示例 functi...
JS中物件 陣列 Map的遍歷
js中的資料型別不多,資料 map以及物件是開發過程中經常使用到的複雜資料結構,經常需要遍歷來進行頁面資料的展示。先來建立乙個物件 var person 從 ecmascript 5 開始,有三種原生的方法用於列出或列舉物件的屬性 1 for.in.迴圈 該方法依次訪問乙個物件及其原型鏈中所有可列舉...