js 迭代 keys() values() entries() - Kaiqisan

js 数组对象迭代 keys() values() entries()

ヤッハロー、Kaiqisanすうう、一つふつうの学生プログラマである,这次再讲讲关于数组对象迭代的新的方法。

这仨方法用于枚举和自动遍历,可以方便遍历的过程,虽然它们各有分工,需要选择使用

Object.keys(val): 获取您传入的参数的所有成员的名。有返回值,需要参数接收

let obj = {
    name: 'kaiqisan',
	uid: 1001,
	sex: false
}

let a  = Object.keys(obj)
console.log(a) // ["name", "uid", "sex"]

也可以传入数组,获取数组的下标,因为js中, 数组本质也是对象,它的下标本质上是对象里的键。

let arr = ['a', 'b', 'c', 'dd']
let a  = Object.keys(arr)
console.log(a) // ["0", "1", "2", "3"]
let arr = ['a', 'b', 'c', 'dd']
arr.name = 'normal'
let a = Object.keys(arr)
console.log(a) // ["0", "1", "2", "3", "name"]

这里支持传入字符串,可以达到分割每一个字符的效果

let a = Object.keys('hello')
console.log(a) // ["0", "1", "2", "3", "4"] 五个字符,就有五个下标

Object.values(val): 获取您传入的参数的所有成员的有返回值,需要参数接收

let obj = {
    name: 'kaiqisan',
	uid: 1001,
	sex: false
}

let a  = Object.values(obj)
console.log(a) // ["kaiqisan", 1001, false]

数组也可以

let arr = ['a', 'b', 'c', 'dd']
let a  = Object.values(arr)
console.log(a) // ["a", "b", "c", "dd"]
let arr = ['a', 'b', 'c', 'dd']
arr.name = 'normal'
let a = Object.values(arr)
console.log(a) // ["a", "b", "c", "dd", "normal"]

字符也可以

let a = Object.keys('hello')
console.log(a) // ["h", "e", "l", "l", "o"] 五个字符,就有五个下标

Object.entries(val): 获取您传入的参数的所有成员的值和键名有返回值,需要参数接收

let obj = {
    name: 'kaiqisan',
	uid: 1001,
	sex: false
}

let a  = Object.entries(obj)
console.log(a) //  [["name", "kaiqisan"], ["uid", 1001], ["sex", false]] 是二维数组

数组也可以

let arr = ['a', 'b', 'c', 'dd']
let a  = Object.entries(arr)
console.log(a) //  [["0", "a"], ["1", "b"], ["2", "c"], ["3", "dd"]] 
let arr = ['a', 'b', 'c', 'dd']
arr.name = 'normal'
let a = Object.entries(arr)
console.log(a) // [["0", "a"], ["1", "b"], ["2", "c"], ["3", "dd"], ["name", "normal"]]

字符也可以

let a = Object.entries('hello')
console.log(a) // [["0", "h"], ["1", "e"], ["2", "l"], ["3", "l"], ["4", "o"]]

PS:上述方法不可迭代null undefined,否则必报错,数字也不可以,否则返回一个空字符串

总结

上面讲的都是这仨方法的最基础的使用方法,代码也都是从MDN上看来自己试验出来的结果,下一次,我们将从较底层出发了解迭代和上面的方法的机制。

///立个flag,这一行将在未来变成一个网址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kaiqisan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值