js数组循环常用的几种方法

前端开发中,经常要用到循环,保存一份,后面慢慢补充。

js数组循环常用的几种方法:。

1、for循环

最基本的循环方式,也是速度比较快,效率比较高的循环方式,

javascript 复制代码
var arr = [1,2,3,4,5];
for (var i = 0; i < arr.length; i++) {
	console.log(arr[i]);
}

2、forEach循环

历数组中的每一项,没有返回值,对原数组没有影响,不支持IE,break无法跳出循环,retrun只能跳出当前循环,无法终止循环。

javascript 复制代码
var arr = [1,2,3,4,5];
arr.forEach(function (item, index, array) {
	// item数组中的当前项, index当前项的索引, array原始数组;
	console.log(item);
})

3、map循环

有返回值,支持return返回值,把每一次循环return返回的值组成一个新的数组,对原数组没有影响。

javascript 复制代码
var arr = [1,2,3,4,5];
var newArr = arr.map(function (item, index, array) {
	return item * 10;
})
console.log(arr); // [1,2,3,4,5]
console.log(newArr); // [10,20,30,40,50]

4、for of循环

ES6新增的循环方法,没有索引,它可以正确响应break、continue和return语句,而且,这个方法避开了for-in循环的所有缺陷。for-in循环虽然可以循环数组,但是会有好多坑,它主要用于循环对象,今天我总结的是数组的循环,就把for-in排除在外了。

javascript 复制代码
var arr = [1,2,3,4,5];
for (var item of arr) {
	// item指的的就是数组每一项的值
	console.log(item);
}

5、filter循环

返回新数组,不会改变原数组,新数组由符合条件的数组组成。

javascript 复制代码
var arr = [1,2,3,4,5];
var newArr = arr.filter(function (item) {
	return item > 3;
})
console.log(arr); // [1,2,3,4,5]
console.log(newArr); // [4,5]

6、every循环

给数组每一项都运行一个函数,如果每一项都符合条件,就返回true,否则返回false。

javascript 复制代码
var arr = [1,2,3,4,5];
var result1 = arr.every(function (item, index, array) {
	return item > 3;
});
var result2 = arr.every(function (item, index, array) {
	return item > 0;
})
console.log(result1); // false
console.log(result2); // true

7、some循环

给数组每一项都运行一个函数,同every相反,只要有一项符合条件,就跳出循环,返回true,否则返回false。

javascript 复制代码
var arr = [1,2,3,4,5];
var result1 = arr.some(function (item, index, array) {
	return item > 4;
});
var result2 = arr.some(function (item, index, array) {
	return item > 5;
})
console.log(result1); // true
console.log(result2); // false

8、find循环

给数组每一项都运行一个函数,只要有一项符合条件,就跳出循环,返回第一个符合条件的元素,否则返回undefined。

javascript 复制代码
var arr = [1,2,3,4,5];
var result1 = arr.find(function (item) {
	return item > 3;
});
console.log(result1); // 4

还有其他的方法,欢迎大家补充。

相关推荐
wuyk5555 小时前
104.C 语言字节对齐:从底层原理到工程实践的完整指南
c语言·开发语言·stm32·单片机·嵌入式硬件
君顾111 小时前
智慧零售实战指南:从技术架构到落地方案全解析
java·开发语言·零售
南棱笑笑生11 小时前
20260904实测给飞凌OK3576-C开发板刷入Rockchip原厂的IMG固件【使用飞凌的DTS】切换串口波特率为1.5Mbps
c语言·开发语言·rockchip
梦曦i12 小时前
@meng-xi/create-uni-app vs unibest:轻量脚手架与重型框架的定位之争
前端·uni-app
平头哥技术团队12 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
乌萨奇也要立志学C++12 小时前
【洛谷】kmp算法
开发语言·算法
传奇开心果编程12 小时前
【Rust入门知识点学与练】第4课:条件判断 if / else
开发语言·学习·rust
乌恩大侠12 小时前
GH200 新增 NVMe SSD 分区、格式化与挂载完整流程
运维·服务器·前端
m0_3807438712 小时前
给 Claude API 调用补上超时重试和错误分类
开发语言·人工智能·php
yume_sibai12 小时前
Element Plus 数据展示组件完全指南(15个核心组件)
前端·javascript·vue.js