ES6(八)对象的扩展(2) keys、values、entries

时间:2021-6-7 作者:qvyue

不仅数组有 keys、values、entries 这三个方法,对象也有这三个方法。

keys

返回对象的key,浅层的,数组形式

const foo = {
  name:'jyk',
  age: 12
}

console.log(Object.keys(foo)) // 

ES6(八)对象的扩展(2) keys、values、entries
keys

返回一个数组。于是我们可以得到对象的 key ,以及更多的遍历方式。

for of

const foo = {
  name:'jyk',
  age: 12
}

const { keys } = Object
for (const key of keys(foo)){
  console.log(key) // 
}
ES6(八)对象的扩展(2) keys、values、entries
for of

forEach

const foo = {
  name:'jyk',
  age: 12
}

const { keys } = Object

keys(foo).forEach((item) => {
  console.log(item)
})

ES6(八)对象的扩展(2) keys、values、entries
forEach

Object.keys 返回的是数组,这个就非常方便了,可以用大家喜欢的方式来遍历获取数据,也可以通过 length 的方式获取对象有多少个 key。

不过需要注意的是,不支持 Symbol() ,会被过滤掉。

ES6(八)对象的扩展(2) keys、values、entries
不支持 symbol

values

同上,返回的是对象的属性的值,也是浅层的。

const foo = {
  name:'jyk',
  age: 12
}

console.log(Object.values(foo)) // 

const { values } = Object
for (const val of values(foo)){
  console.log(val) // 
}

ES6(八)对象的扩展(2) keys、values、entries
values

如果参数是字符串,那么会返回字符的数组

ES6(八)对象的扩展(2) keys、values、entries
字符串

entries

同上,这次是一起返回。二维数组的形式

const foo = {
  name:'jyk',
  age: 12
}

console.log(Object.entries(foo)) // 

const { entries } = Object
for (const [key, val] of entries(foo)){
  console.log(key, val) // 
}

ES6(八)对象的扩展(2) keys、values、entries
entries
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。