Object.keys(obj) —— 返回一个包含该对象所有的键的数组。
Object.values(obj) —— 返回一个包含该对象所有的值的数组。
Object.entries(obj) —— 返回一个包含该对象所有 [key, value] 键值对的数组。
let obj = {
name: "jack",
age: 20,
sex: "man",
}
let keys = Object.keys(obj);
console.log(keys); // ["name", "age", "sex"]
let values = Object.values(obj);
console.log(values); // ["jack", 20, "man"]
let entries = Object.entries(obj);
console.log(entries); // [ ["name", "jack"], ["age", 20], ["sex", "man"] ]
// 返回值均为数组
与 Map Set 方法的区别
写法不同:map.keys()
返回值的区别:Object.* 方法返回的是“真正的”数组对象,而不只是一个可迭代项。
let map = new Map([
['cucumber', 500],
['tomatoes', 350],
['onion', 50],
]);
console.log(map); // {"cucumber" => 500, "tomatoes" => 350, "onion" => 50}
// 返回可迭代项
let mapKeys = map.keys();
console.log(mapKeys); // {"cucumber", "tomatoes", "onion"}
console.log(Object.keys(map)); // []
let mapValues = map.values();
console.log(mapValues); // {500, 350, 50}
console.log(Object.values(map)); // []
let mapEntries = map.entries();
console.log(mapEntries); // {"cucumber" => 500, "tomatoes" => 350, "onion" => 50}