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

223 阅读1分钟
1.for循环
 let arr = [1,2,3,4,5,6,7,8,9,10]
        初始值     判断条件     迭代
 for(let i = 0; i < arr.length; i++){
  当判断条件不成立时中止循环
    console.log(arr[i]); // 1,2,3,4,5,6,7,8,9,10
  }
forEach循环
不改变原数组,从索引0开始遍历,循环过程不支持修改索引

let arr = [1,2,3,4,5,6,7,8,9,10]
let arr1 = [1,2,3,4,5,6,7,8,9,10]
// 遍历arr
arr.forEach((item,index)=>
// 遍历到当前索引 删除当前数据
arr1.splice(index,1) )
//  索引变化导致
console.log(arr1); // [2,4,6,8,10]
map 循环
有返回值,支持return,return返回的值组成新数组(映射新数组返回),对原数组不影响
let arr = [1,2,3,4,5]
let NewArr = arr.map(item=>{
   return item*2 })  
     
 console.log(NewArr); // [2,4,6,8,10]
 
for of 循环
let arr = [1,2,3,4,5,6,7,8,9,10]
for(let val of arr ){
  console.log(val);  // [1,2,3,4,5,6,7,8,9,10]
}
filter 循环
不改变原数组,返回一个满足条件的新数组
let arr = [1,2,3,4,5,6,7,8,9,10]
let NewArr = arr.filter(item=>{
  return item > 5
})
console.log(NewArr); // [6,7,8,9,10]
some 循环
 let arr = [1,2,3,4,5,6,7,8,9,10]
  // 有一项满足条件就返回true
let NewArr = arr.some(item=>{
  return item > 9
 })
 console.log(NewArr); // true
 
every 循环
   let arr = [1,2,3,4,5,6,7,8,9,10]
  // 有一项不满足条件就返回false
 let NewArr = arr.every(item=>{
  return item > 9
 })
 console.log(NewArr); // false
 
find 循环
  let arr = [1,2,3,4,5,6,7,8,9,10]
  // 返回满足条件的第一个数据并退出循环
let NewArr = arr.find(item=>{
  return item > 5
 })
 console.log(NewArr); // 6
reduce 循环
    let arr1 = [1,2,3,4,5]
    let arr = arr1.reduce((prev,cur,index,arr)=>{
    console.log(prev); // 0 1 3 6 10 * 5
    console.log(cur); // 1 2 3 4 5   * 5
    console.log(index); // 0 1 2 3 4 * 5
    console.log(arr); // [1,2,3,4,5] * 5
    return  Number(prev + cur) * 5
    },0) // 不给值默认从1开始
  
  console.log(arr); // 15 * 1
  
  这个reduce 目前有点玩不明白 有大神知道的 可以发评论区撒-。-