forin和forof和Object.keys() (参考mdn)

本文介绍了JavaScript中用于对象遍历的三种方法:for in、for of和Object.keys。for in不应在数组中使用,主要用于遍历对象的所有可枚举属性,但可能包含原型链上的属性。为了仅遍历对象自身的属性,可以使用getOwnPropertyNames()或hasOwnProperty()。for of提供了一种迭代可迭代对象的方式,如数组、Map和Set,返回的是每个属性的值。Object.keys()则返回一个包含对象所有可枚举属性名的数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对象的遍历方法

for in 和 for of 以及Object.keys

1:for in 遍历数组的任意属性(symbol类型除外)

for (variable in object){
	statements
}

variable
每次被迭代时,variable被赋予不同的属性值
object
非symbol类型的可枚举可迭代的对象

for in 不应使用在数组中
如果只考虑在对象本身的属性,而不是它的原型,getOwnPropertyNames()或者执行hasOwnproperty()来确定是否含有本身的对象属性,也能使用(propertyIsEnumerable);或者,如果你知道不会有任何外部代码干扰,您可以使用检查方法扩展内置原型。(参考mdn)

2.for of 在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句;

let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]);

for (let entry of iterable) {
  console.log(entry);
}
// ["a", 1]
// ["b", 2]
// ["c", 3]

for (let [key, value] of iterable) {
  console.log(value);
}
// 1
// 2
// 3

可以由break, throw continue 或return终止。在这些情况下,迭代器关闭。

这个是使用方法,可以后去数组或对象的每一个value值并对其进行操作(如果不向value改变可以用const 定义变量for (const value of iterable))

let iterable = [10, 20, 30];

for (let value of iterable) {
    value += 1;
    console.log(value);
}
// 11
// 21
// 31

3.object.keys(…)一下获取所有的key值,返回一个数组

const object1 = {
  a: 'somestring',
  b: 42,
  c: false
};

console.log(Object.keys(object1));
// expected output: Array ["a", "b", "c"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值