hgq's docs
主页
ES6-阮一峰 (opens new window)
Vue文档 (opens new window)
Axios文档 (opens new window)
Vue Router (opens new window)
Vuex文档 (opens new window)
面试题-Vue (opens new window)
面试题-JS (opens new window)

guoguoqiqi

漫不经心的向往
主页
ES6-阮一峰 (opens new window)
Vue文档 (opens new window)
Axios文档 (opens new window)
Vue Router (opens new window)
Vuex文档 (opens new window)
面试题-Vue (opens new window)
面试题-JS (opens new window)
  • JS数据类型
  • JS数据类型的转换
  • 判断数据类型的方法
  • null和undefined的区别
  • parseInt方法解析
  • promise简答
  • var和let以及const的区别
  • 本地存储的几种方式
  • 闭包是什么
  • 调用new的过程
  • 防抖和节流
  • 简单讲讲异步的理解
  • 简单讲讲原型和原型链
  • 判断变量的数据类型
  • 深浅拷贝
  • 数组去重的方法
  • 说一说JS中的this
  • 作用域和作用域链
  • JS的内置对象
  • JS继承的几种实现方式
  • 谈谈你对this、call、apply和bind的理解
  • 说一说原型、原型链
  • 什么是闭包,为什么使用闭包
  • JS中事件冒泡与捕获
  • 说一说JS的事件模型
  • 常用的遍历数组的方法
    • 如何创建一个Ajax
    • js 延迟加载的方式有哪些
    • 谈谈你对模块化开发的理解
    • js 的几种模块规范
    • ES6 模块与 CommonJS 模块、AMD、CMD 的差异
    • JS的运行机制、单线程、事件循环、宏任务微任务
    • arguments 的对象是什么
    • 简单介绍一下 V8 引擎的垃圾回收机制
    • 哪些操作会造成内存泄漏
    • ES6有哪些新特性
    • 说一说箭头函数
    • 什么是高阶函数
    • 为什么函数被称为一等公民
    • js的深浅拷贝
    • 函数柯里化
    • 说一说new操作符
    • 说一说对Promise的理解
    • Generator函数是什么,有什么作用
    • 说一说async和await
    • instanceof的原理是什么,如何实现
    • js 的节流与防抖
    • 相关面试题集合
    • 如何更好的处理async、await的异常
    • JS的事件委托
    • 浏览器和node中事件循环的区别
    • mouseover 和 mouseenter 的区别
    • ===与Object is的区别
    • 数组去重有哪些方法
    • 页面在浏览器中渲染出来的原理和流程
    • js和css是否会阻塞页面的渲染
    • Set、Map、WeakSet 和 WeakMap 的区别
    • 说一说Promise的实现原理
    • 说一说JS的事件循环
    • == 和 === 与隐式转化
    • 说一说回流(重排)和重绘
    • script标签中添加async或defer的作用与区别
    • 如何中断一个请求
    • 遍历一个对象身上属性的方法有哪些
    • 常用的数组方法(不改变原数组)
    • 常用的数组方法(改变原数组)
    • 常用字符串操作方法
    • 对象身上与原型相关的方法
    • 数组的reduce方法
    • 常用的位运算符有哪些
    • 浮点数运算有误差的问题
    • typeof和instanceof的区别
    • 有关js和css对页面渲染阻塞的问题
    • 说说对闭包的理解
    • DOMContentLoaded方法
    • es6中对象新增的方法
    • es6中数组新增的方法
    • es6中字符串新增的方法
    • es6新增的Reflect
    • 如何判断一个变量是否是数组
    • onload 和 DOMContentLoaded的区别
    • 大文件上传问题
    • 上传、下载和普通请求的区别
    • Javascript
    guoguoqiqi
    2022-02-21

    常用的遍历数组的方法

    # forEach

    arr.forEach(callback(currentValue [, index [, array]])[, thisArg])
    
    1

    forEach() 方法按升序为数组中含有效值的每一项执行一次 callback 函数,那些已删除或者未初始化的项将被跳过(例如在稀疏数组上)。

    特点:

    1. 无法中途退出循环,只能用return退出本次回调,进行下一次回调。
    2. 它总是返回 undefined值,即使你return了一个值。

    详解 (opens new window)

    # every

    检测数组所有元素是否都符合判断条件

    array.every(function(currentValue, index, arr), thisValue)
    
    1

    # some

    数组中的是否有满足判断条件的元素

    array.some(function(currentValue, index, arr), thisValue)
    
    1

    # filter

    过滤原始数组,返回新数组

    let new_array = arr.filter(function(currentValue, index, arr), thisArg)
    
    1

    # map

    对数组中的每个元素进行处理,返回新的数组

    let new_array = arr.map(function(currentValue, index, arr), thisArg)
    
    1

    # reduce

    为数组提供累加器,合并为一个值

    array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
    
    1

    参数:

    1. total(必须),初始值, 或者上一次调用回调返回的值
    2. currentValue(必须),数组当前元素的值
    3. index(可选), 当前元素的索引值
    4. arr(可选),数组对象本身

    # reduceRight

    从右至左累加,这个方法除了与reduce执行方向相反外,其他完全与其一致

    # find

    用于找出第一个符合条件的数组成员,并返回该成员,如果没有符合条件的成员,则返回undefined。

    # findIndex

    返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。

    # keys && values && entries

    遍历键名、遍历键值、遍历键名+键值。 三个方法都返回一个新的 Array Iterator 对象,对象根据方法不同包含不同的值。

    # 参考文章链接

    js 数组详细操作方法及解析合集 (opens new window)

    ← 说一说JS的事件模型 如何创建一个Ajax→

    最近更新
    01
    vuex数据持久化怎么做
    05-22
    02
    vue的动态路由怎么配置使用
    05-22
    03
    vue权限控制一般怎么做
    05-22
    更多文章>
    Theme by Vdoing | Copyright © 2022-2022 Guoquoqiqi | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式