JS47 Map 的營救 使物件屬性有順序

2021-08-30 17:45:36 字數 884 閱讀 4817

在對乙個物件進行遍歷時,每個瀏覽器都有自己的規則,遍歷的順序是不確定的:

var myobject = ;

for (item in myobject)

// 1

// 5

// z

// @

// b

因此,在對物件進行遍歷時,不能依賴其遍歷的順序,因為在不同的瀏覽器可能會有不同的表現。

如果需要按照一定的、統一的順序遍歷,如何實現呢?

如果不考慮相容性,可以使用es6的map結構實現。

map物件以插入的順序比那裡元素,for...of迴圈為每一次迴圈返回乙個[key, value]陣列。

var myobject = new map();

myobject.set('z', 1);

myobject.set('@', 2);

myobject.set('b', 3);

for (var [key, value] of myobject)

// z 1

// @ 2

// b 3

如果要考慮相容性,那麼要麼使用兩個分開的陣列(乙個儲存key,乙個儲存value),要麼構建乙個單屬性物件的陣列:

// 使用分開的陣列

var objectkeys = [z, @, b, 1, 5];

for (item in objectkeys)

// 構建乙個單屬性物件(single-property objects)的陣列

var mydata = [, , , , ];

Js中Map物件的使用

1 定義 鍵 值對的集合。2 語法 mapobj new map 3 備註 集合中的鍵和值可以是任何型別。如果使用現有金鑰向集合新增值,則新值會替換舊值。4 屬性 建構函式 指定建立對映的函式。prototype 原型 為對映返回對原型的引用。size 返回對映中的元素數。5 方法 set 新增乙個...

JS的物件屬性操作

首先什麼是js物件的屬性操作?我們在現實生活中,採取某些,如屬性名 屬性值的格式,可被描述的事物,叫物件 而在js程式中,這個描述這個事物的資訊,就叫js的物件 1.字面量建立 var obj1 2.建構函式建立 var obj2 newobject console.log obj1 object ...

js物件的屬性配置

object.getownpropertydescriptor 返回物件對應屬性的 屬性配置 let obj let mes object.getownpropertydescriptor obj,name console.log mes configurable true enumerable t...