JavaScript常用的循环遍历、迭代的方法:for、forEach、map、some、every、for...in... 、for...of...

一、常规for遍历数组

let arr = [1,2,3]

for (let i = 0; i < arr.length; i++) {  

    console.log(arr[i])
}  

总结:

1.for循环是最一般最常用的循环方法,建立在for关键字的基础上实现编程的循环;

2.可以用来遍历数组、字符串。

二、forEach、map方法

1.forEach方法
let arr = [1,2,3]

arr.forEach((item, index) => {

	console.log(item)
})

forEach()方法是个人偏爱的方法了,当然可以不用箭头函数:

let arr = [1,2,3]

arr.forEach(function(item, index) {

	console.log(item)
})

第一个item参数是数组的元素,第二个index参数可以省略,箭头函数只有一个参数时可以省略参数的括号,看个人需求:

let arr = [1,2,3]

arr.forEach(item=> {

	console.log(item)
})

需要注意的是,forEach()方法不提供返回值,默认是undefined,这与map()等方法不同。

当你需要操作原数组时,请带上index参数,直接修改原数组:

let arr = [1,2,3]

arr.forEach((item, index) => {

	arr[index] = item + 1
})

总结:

a.forEach()使用起来简洁得多,不用创建循环变量

b.配合箭头函数,更是加快开发速度(相对for循环的而言);

c.可以遍历数组、字符串。

2.map方法

map()方法参数与其一致,但map()方法会创建新数组,并在结果返回:

// forEach
let arr = [1,2,3]
 
let params = arr.forEach((item, index) => {
 
    console.log(item)
 
    return item + 10   //注意,这个返回return是没用的,是为了跟map对比
})
console.log(params)    // undefined
 
// map
let newArr = arr.map((item, index) => {
 
    console.log(item)
 
    return item + 10  //这个return就是需要的咯,不然map原数组干嘛
})
console.log(newArr )         // [11, 12, 13]   返回一个新的数组

总结:

map()方法一般用在你需要遍历并得到新数组的情况。

三、some、every方法

1.some方法

some()方法是对数组中所有项运行给定函数,如果该函数的任一项执行函数后返回true,则最终返回true,否则返回false

let arr = [1,2,3]

// 用result变量接收返回结果
let result = arr.some(item => {

	return item > 2
)

console.log(result) // true

在上面的代码中,判断了数组arr是否存在大于2的元素,并将结果以布尔值的形式返回到result

2.every方法

every()方法是对数组中所有项运行给定函数,如果该函数的每一项执行函数后返回true,则最终返回true,否则返回false

let arr = [1,2,3]

// 用result变量接收返回结果
let result = arr.every(item => {

	return item > 2
)

console.log(result) // false

在上面的代码中,判断了数组arr所有元素是否都大于2,并将结果以布尔值的形式返回到result

四、for…in… 、for…of…方法

1.for…in…方法

for...in...方法个人通常用来遍历对象,用法简单,参考如下即可:

let obj = {
	id: 1,
	name: 'Bob'
}
for (let k in obj) {

	console.log(obj[k])
}

总结:

a.需要注意的是:变量 k 为 key,是键名而不是键值

b.for...in...方法除了可以遍历对象,当然也可以遍历数组、字符串,变量index也只是索引下标

let arr = [1,2,3]

for (let index in array) {  

    console.log(array[index])
}

c.for...in...语句遍历对象时,对于每个不同的属性都会被执行,故而分配的是属性名键名),迭代的顺序时依赖于执行环境,所以遍历数组不一定按次序访问数组元素,需要按顺序请使用for循环、forEach()方法或for...of...语句。

2.for…of…方法

for...of...是ES6新增的循环遍历数组的方法,使用很简单:

for (let item of array) {  

    console.log(item)
}

有点像for...in...,但需要注意for...of...forEach()一样直接得到item而不是index,所以不能对对象使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值