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...