for…in和for…of的用法与区别

写了两年的js,迷迷糊糊的,现在系统地回顾一下

遍历对象的方法

for…in循环、Object.keys()、Object.entries()、Object.values()

1. for … in 循环

for (let key in obj) {
	if (Object.hasOwnProperty(key)) {
		console.log(obj[key]);
	}
}

2. Object.keys()

Object.keys(obj).forEach(function(key) {
	consolo.log(obj[key);
})

3. Object.values() 方法

Object.values(obj).forEach(function(value) {
	console.log(value);
})

4. Object.entries() 方法

Object.entries(obj).forEach(function([key, value]) {
	console.log(key, value);
})

遍历数组的方法

for循环、 forEach方法、for of循环、map、filter、reduce

  1. for 循环
for (let i = 0; i < arr.length; i++) {}
  1. for…of循环
for (let element of arr) {
	console.log(element);
}
  1. map方法(会创建一个新数组)
arr.map(function(item) {
	console.log(item);
})
  1. filter 方法(会创建一个新数组)
  2. reduce 方法

数组的全部方法

1. 添加、删除

push:尾部添加元素,返回新数组长度
pop:移除并返回数组的第一个元素
unshift:数组头部插入,返回新数组长度
shift:移除并返回数组的第一个元素

2. 合并、分割

concat: 合并数组,返回新数组
slice:分割数组的某一部分,包含起始位置,不包含结束为止

3. 修改数组

splice:从指定位置开始删除或添加元素
reverse:颠倒数组的顺序
sort:对数组进行排序

// 不改变原数组
// 使用场景一:按 Unicode 码点的顺序进行的,因此默认情况下,元素将被转换为字符串,然后按照字符串的 Unicode 码点进行排序
let fruits = ['apple', 'banana', 'orange', 'grape'];
fruits.sort();
console.log(fruits); // 输出:['apple', 'banana', 'grape', 'orange']

// 使用场景二:自定义排序函数。如果函数小于0,a在b之前;大于0,a在b之后;等于0顺序不变
let numbers = [10, 5, 8, 2, 1];
numbers.sort(function(a, b) {
    return a - b;
});
console.log(numbers); // 输出:[1, 2, 5, 8, 10]

4. 查询元素

indexof:返回指定元素第一个出现的位置,没有返回-1
lastIndexOf:指定元素最后一次出现的索引,没有返回-1
includes

5. 遍历数组

foreach
map
filter
reduce

6. 其他方法

join
toString
isArray

7. 检测方法

every
some

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值