Iwen's blog Iwen's blog
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • Linux
  • 学习
  • 面试
  • 心情杂货
  • 友情链接
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
复盘
关于

Iwen

不摸鱼的哥哥
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • Linux
  • 学习
  • 面试
  • 心情杂货
  • 友情链接
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
复盘
关于
  • Vue

  • Vue进阶

  • CSS

  • ES6

  • Base

  • Core

  • Array

    • 基础方法
    • 数组遍历总结
      • forEach()
      • filter()
      • map()
      • some()
      • every()
      • for of()
      • for()
    • 扁平化
    • 数组去重
    • 判断数组中是否包含某个值
    • 伪数组转换为真数组
    • 数组中强大的reduce
    • 前端模块化
  • Object

  • String

  • Async

  • Browser

  • Http

  • 性能优化

  • 正则

  • 经典总结

  • 设计模式

  • 数据结构

  • 算法

  • 手写

  • TypeScript

  • 复盘
  • Array
Mr.w
2020-11-29

数组遍历总结

# 数组遍历总结

# forEach()

对数组进行遍历循环,对数组中的每一项运行给定函数。可修改原数组,这个方法没有返回值。
参数:当前值,索引值,原数组

let arr = [1, 2, 3, 4, 5];
arr.forEach((item, index, array) => {
    console.log(item + '|' + index + '|' + (array === arr));
});
// 1|0|true
// 2|1|true
// 3|2|true
// 4|3|true
// 5|4|true
1
2
3
4
5
6
7
8
9

# filter()

过滤,不会改变原始数组,返回新数组
参数:当前值,索引值,原数组

let arr = [
  { id: 1, text: 'aa', done: true },
  { id: 2, text: 'bb', done: false }
]
let newArr = arr.filter(item => item.done);
console.log(newArr)  // [{ id: 1, text: 'aa', done: true }]
 
let arr = [73, 84, 56, 22, 100]
let newArr = arr.filter(item => item > 80) 
console.log(arr, newArr)     // [73, 84, 56, 22, 100], [84, 100]
1
2
3
4
5
6
7
8
9
10

# map()

指“映射”,对数组中的每一项运行给定函数,返回新数组。
参数:当前值,索引值,原数组

let arr = [1, 2, 3, 4, 5];
let arr2 = arr.map( function( item, index, array ){
    return item * item;
});
console.log(arr);   // [1, 2, 3, 4, 5]
console.log(arr2);   // [1, 4, 9, 16, 25]
1
2
3
4
5
6

# some()

对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true
参数:当前值,索引值,原数组

let arr = [ 1, 2, 3, 4, 5, 6 ];
let newArr = arr.some( function( item, index, array ){
    return item > 3;
})
console.log( newArr )   // true
1
2
3
4
5

# every()

对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true
参数:当前值,索引值,原数组

let arr = [ 1, 2, 3, 4, 5, 6 ];
let newArr1 = arr.every(( item, index, array ) => item > 3 );
let newArr2 = arr.every(( item, index, array ) => item > 0 );
console.log( newArr1, newArr2 );    // false, true
1
2
3
4

# for of()

可以正确响应break、continue和return语句

let arr = [2, 6, 22, 45, 134]
for (let i of arr) {
    if(i > 30) break;
    console.log(i);
}
// 2, 6, 22
1
2
3
4
5
6

# for()

最基本的方法,使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。

//使用变量缓存临时数组
for(let i = 0; i < arr.length; i++){ 
    //执行代码块
    console.log(i)
}
1
2
3
4
5
基础方法
扁平化

← 基础方法 扁平化→

最近更新
01
flex布局页面自适应滚动条问题
12-28
02
前后端分离开发请求接口跨域如何携带cookie的问题
12-28
03
怎么实现div长宽比固定width-height4比3
12-28
更多文章>
Theme by Vdoing | Copyright © 2017-2022 Iwen | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式