es6 嵌套数组循环_javascript数组的16种循环(包含ES5、ES6)

1.for

优点:

1.可以递增循环也可以递减循环

2.可以使用break、continue控制是否跳出循环

let list = ['a', 'b', 'c', 'd','e'];for (var i = 0; i < list.length; i++) {

console.log(list[i])

}

// a、b、c、d、e

let list = ['a', 'b', 'c', 'd', 'e'];for (var i = list.length - 1; i > 0; i--) {if (i === 0) {continue;

}if (i === 2) {break;

}

console.log(list[i])

}

// e、d

2.while(){}

优点:没有兼容问题,且可以使用break、continue

let list = ['a', 12, 'c', 'd', 'e', 'a'];

let i= 0;while (i

console.log(list[i]);

i++}//'a', 12, 'c', 'd', 'e', 'a'

3.do{}while()

优点:没有兼容性问题,且可以使用break、continue

let list = ['a', 12, 'c', 'd', 'e', 'a'];

let i= 0;do{

console.log(list[i])

i++;

}while (i < list.length) //'a', 12, 'c', 'd', 'e', 'a'

4.forEach

优点:1.函数式编程方便使用

2.返回值是undefined

缺点:1.ECMAScript 5.1 ES5 IE9支持

let list = ['a', 'b', 'c', 'd', 'e'];

list.forEach((item,index,ary)=>{

console.log(`item:${item}----index:${index}----ary:${ary}`)

})

item:a----index:0----ary:a,b,c,d,e

item:b----index:1----ary:a,b,c,d,e

item:c----index:2----ary:a,b,c,d,e

item:d----index:3----ary:a,b,c,d,e

item:e----index:4----ary:a,b,c,d,e

5.every

功能:测试数组内容是否全部通过

特点:1.[]数组大概率返回true

缺点:1.ECMAScript 5.1 ES5 IE9支持

let list = ['a', 12, 'c', 'd', 'e'];

const isPass= list.every((item,index) =>{return typeof item === 'string'})

console.log(isPass) // false

6.some

功能:测试数组有一项通过则为true否则为false

特点: 空数组为false

缺点:1.ECMAScript 5.1 ES5 IE9支持

let list = ['a', 12, 'c', 'd', 'e'];

const isPass= list.some((item,index) =>{return typeof item === 'boolean'})

console.log(isPass)//false

7.indexOf

功能:与findIndex一样

let list = ['a', 12, 'c', 'd', 'e','a'];

const result= list.indexOf('a2',2)

console.log(result)//5

8.lastIndexOf

功能:反向查找

let list = ['a', 12, 'c', 'd', 'e','a'];

const result= list.lastIndexOf('a',2)

console.log(result)//0

9.filter

功能: 过滤数组,当返回值为true时保留,无法操作原数组

let list = ['a', 12, 'c', 'd', 'e', 'a'];

const result= list.filter((item, index) =>{return typeof item === 'string'})

console.log(result)//["a", "c", "d", "e", "a"]

10.map

功能:可以对遍历项操作,且返回新的数组,元素组不改变

let list = ['a', 12, 'c', 'd', 'e', 'a'];

const result= list.map((item, index) =>{return item + '_'})

console.log(result)//["a_", "12_", "c_", "d_", "e_", "a_"]

11.reduce

优点:累计计算非常好用

缺点:上手难度比其他函数式编程高一些

let list = ['a', 12, 'c', 'd', 'e', 'a'];

const result= list.reduce((total,prev,index,arr) =>{return total +prev;

},'');

console.log('result',result); //a12cdea

12.for...in

缺点:虽然可以,不推荐遍历数组,一般用来遍历对象 毕竟key都给你输出了

let list = ['a', 12, 'c', 'd', 'e', 'a'];for(let key inlist){

console.log(list[key]);

}//'a', 12, 'c', 'd', 'e', 'a'

13.find

功能:获取数组符合条件的第一个值,如果没有找到返回undefined

,Edge 14-80支持

let list = ['a', 12, 'c', 'd', 'e'];

const result = list.find((item,index) =>{return item === 'a'})

console.log(result) // a

14.findIndex

功能:获取数组符合条件的第一个值得索引,如果没有找到就返回-1

,Edge 14-80支持

let list = ['a', 12, 'c', 'd', 'e','a'];

const result= list.findIndex((item,index) =>{return item === 'a'})

console.log(result)//0

15.for...of

let list = ['a', 12, 'c', 'd', 'e', 'a'];for(let s of list) {

console.log(s);

}//'a', 12, 'c', 'd', 'e', 'a'

16.includes

判断数组中是否存在该值

let list = ['Jan', 'March', 'April', 'June'];

const result= list.includes('Jan'); // true

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值