数组常用循环

2020-02-24 18:17:54 浏览数 (1)

对于JS我们常见的循环有下面这些:

代码语言:javascript复制
  for 循环
  for in 循环
  for of 循环
  forEach()
  map()
  filter()
  some()
  every()

下面要循环的数组

代码语言:javascript复制
 var arr = ['a', 'b', 'c'];

1、for 循环

代码语言:javascript复制
for (var i = 0; i < arr.length; i  ) {
    console.log(arr[i])
}

2、for in 循环

代码语言:javascript复制
for (var i in arr) {
    console.log(arr[i])
}

3、for of 循环

代码语言:javascript复制
// for of 循环 直接得到的就是值  !!!
for (var v of arr) {
    console.log(v)
}

4、forEach() 循环

代码语言:javascript复制
// forEach循环没有返回值 默认返回 undefined
var newArr = [];
arr.forEach(function (v, i) {
    // console.log(v, i)
    // return v   '哈';  // 这能这样子!!! 没有返回值
    newArr.push( v   'haha' )
})
// console.log(newArr)  // undefined
console.log(newArr)  

5、map循环方法

代码语言:javascript复制
// map方法 和foreach一样,它会把返回的元素,添加进入一个新数组,然后,返回这个全新的数组
var newArr = arr.map(function (v, i) {
    // console.log(v, i)
    return v   '嘿嘿'
})
console.log(newArr)

6、filter循环方法

代码语言:javascript复制
// filter是循环数组,然后过滤数据, 把满足条件的过滤出来,返回一个全新的数组
var ages = [16, 17, 18, 19, 20];
var newAges = ages.filter(function (v, i) {
    // console.log(v, i)
    return v >= 18;
})
console.log(newAges)

7、some 循环方法

代码语言:javascript复制
// some 循环方法, 只要有一个满足 就返回true 否则返回false
var ages = [16, 17, 18, 19, 20];
var rst = ages.some(function (v, i) {
    // console.log(v, i)
    return v > 19
})
console.log(rst)

8、every 循环方法

代码语言:javascript复制
// every 循环方法 每一个都满足 才返回true 否则返回false
var ages = [16, 17, 18, 19, 20];
var rst = ages.every(function (v, i) {
    // console.log(v, i)
    return v >= 16
})
console.log(rst)

0 人点赞