对象迭代

Object.values()Object.entries()接收一个对象,返回他们内容的数组。

Object.values()返回对象值的数组,Object.entries()返回键/值对的数组。

const o={
    foo:'bar',
    baz:1,
    qux:{}
}

console.log(Object.values(o))//[ 'bar', 1, {} ]
console.log(Object.entries(o))//[ [ 'foo', 'bar' ], [ 'baz', 1 ], [ 'qux', {} ] ]

非字符串属性会被转换为字符串输出。这两个方法执行对象的浅复制。

const o={
    qux:{}
}
console.log(Object.values(o)[0]===o.qux);
console.log(Object.entries(o)[0][1]===o.qux);

符号属性会被忽略。

const sym = Symbol();
const o={
    [sym]:'foo',
}
console.log(Object.values(o));
console.log(Object.entries(o))