- Object.keys(obj):返回一个包含该对象所有的键的数组
- Object.values(obj):返回一个包含该对象的所有值的数组
- Obiect.entries(obj):返回一个包含该对象的所有
[key,value]
键值对的数组
区别:
map | Object | |
---|---|---|
调用语法 | map.keys() | Object.keys() |
返回值 | 可迭代项 | "真正的"数组 |
-
第一个区别是 主要原因是灵活性。请记住,在 JS 中,对象是所有复杂结构的基础。因此,我们可能有一个自己创建的对象,比如 data,并实现了它自己的 data.values() 方法。同时,我们依然可以对它调用 Object.values(data) 方法。
-
第二个区别是 Object.* 方法返回的是“真正的”数组对象,而不只是一个可迭代项。这主要是历史原因。
转换对象
Object.fromEntries() 方法把键值对列表转换为一个对象。
const entries = new Map([
['foo', 'bar'],
['baz', 42]
]);
const obj = Object.fromEntries(entries);
console.log(obj);// { foo: "bar", baz: 42 }
具体可参考:Object.fromEntries()
开发中的运用
将返回的以字符串为key值的数组对象,拼凑成前端需要的数据接结构