獲取物件的key和value

2021-09-17 22:51:23 字數 2622 閱讀 6544

1 object.keys()

es5 引入了object.keys方法,返回乙個陣列,成員是引數物件自身的(不含繼承的)所有可遍歷( enumerable )屬性的鍵名。

var obj =

;object.

keys

(obj)

// ["foo", "baz"]

目前, es7 有乙個提案,引入了跟object.keys配套的object.values和object.entries。

let

= object;

let obj =

;for

(let key of

keys

(obj)

)for (let value of values(obj)) for (let [key, value] of entries(obj))

2 object.values()

object.values方法返回乙個陣列,成員是引數物件自身的(不含繼承的)所有可遍歷( enumerable )屬性的鍵值。

var obj =

;object.

values

(obj)

// ["bar", 42]

返回陣列的成員順序,與本章的《屬性的遍歷》部分介紹的排列規則一致。

var obj =

;object.

values

(obj)

// ["b", "c", "a"]

上面**中,屬性名為數值的屬性,是按照數值大小,從小到大遍歷的,因此返回的順序是b、c、a。

object.values只返回物件自身的可遍歷屬性。

var obj = object.

create(,

});object.

values

(obj)

//

上面**中,object.create方法的第二個引數新增的物件屬性(屬性p),如果不顯式宣告,預設是不可遍歷的。object.values不會返回這個屬性。

object.values會過濾屬性名為 symbol 值的屬性。object.

values()

;// ['abc']

如果object.values方法的引數是乙個字串,會返回各個字元組成的乙個陣列。

object.

values

('foo'

)// ['f', 'o', 'o']

上面**中,字串會先轉成乙個類似陣列的物件。字串的每個字元,就是該物件的乙個屬性。因此,object.values返回每個屬性的鍵值,就是各個字元組成的乙個陣列。

如果引數不是物件,object.values會先將其轉為物件。由於數值和布林值的包裝物件,都不會為例項新增非繼承的屬性。所以,object.values會返回空陣列。

object.

values(42

)// object.values(true) //

3 object.entries

object.entries方法返回乙個陣列,成員是引數物件自身的(不含繼承的)所有可遍歷( enumerable )屬性的鍵值對陣列。

var obj =

;object.

entries

(obj)

// [ ["foo", "bar"], ["baz", 42] ]

除了返回值不一樣,該方法的行為與object.values基本一致。

如果原物件的屬性名是乙個 symbol 值,該屬性會被省略。

object.

entries()

;// [ [ 'foo', 'abc' ] ]

上面**中,原物件有兩個屬性,object.entries只輸出屬性名非 symbol 值的屬性。將來可能會有reflect.ownentries()方法,返回物件自身的所有屬性。

object.entries的基本用途是遍歷物件的屬性。

for

(let

[k, v]

of object.

entries

(obj)):

$`);

}// "one": 1// "two": 2

object.entries方法的乙個用處是,將物件轉為真正的map結構。

var obj =

;var map =

newmap

(object.

entries

(obj));

map // map

自己實現object.entries方法,非常簡單。

function

*entries

(obj)

}// 非 generator 函式的版本

// function entries(obj)

// return arr;

// }

js 物件key和value的獲取方法。

自定義方法變數,獲取物件的value,keys varvalues function object varkeys function object 自定義方法,同上思想 function getobjectkeys object function getobjectvalues object 物件 ...

C map通過key獲取value

一般是value map key 或者另一種迭代器的方式 1 在map中,由key查詢value時,首先要判斷map中是否包含key。2 如果不檢查,直接返回map key 可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key,使用下標有乙個危險的 會在map中插入乙個k...

C map通過key獲取value

c 的map中通過key獲取value的方法 一般是value map key 或者另一種迭代器的方式 1 在map中,由key查詢value時,首先要判斷map中是否包含key。2 如果不檢查,直接返回map key 可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key...