对象的迭代方法Object.values()与Object.entries()
ECMAScript2017中新增了两个静态方法,用于将对象内容转化为序列化。这两个静态方法Object.values()和Object.entries()接收一个对象,Object.values()返回对象值的数组,Object.entries()返回键/值对的数组
Object.values()方法
var obj = {
a:'bar',
b:1,
c:{}
}
console.log(Object.values(obj))
// ['bar', 1, {…}]
Object.entries()方法
var obj = {
a:'bar',
b:1,
c:{}
}
console.log(Object.entries(obj))
//[['a', 'bar'],['b', 1],['c', {…}]]
非字符串属性会被转换成为字符串输出。另外这两个方法执行的是浅复制
var obj = {
a:{}
}
console.log(Object.values(obj)[0] === obj.a) //true
console.log(Object.entries(obj)[0][1] === obj.a) //true
符号属性也会被忽略
var sym = Symbol();
var obj = {
[sym]:'123'
}
console.log(Object.values(obj)) //[]
console.log(Object.entries(obj)) //[]