写点什么

JS 数组方法

作者:bo
  • 2022 年 7 月 21 日
  • 本文字数:1179 字

    阅读完需:约 4 分钟

前言

看完了数组的视频,趁热整理一下

数组方法

这里简单的总结了forEach() map() filter() some() every(),这些方法都存在 Array.prototype 原型中

forEach()

Array.prototype.forEach() 遍历数组,无返回值,不改变原数组,仅仅只是遍历

let arr = ["青椒", "鸡蛋", "黄瓜", "程序员"];arr.forEach((value, index, array) => {    console.log(index + 1 + ":" + value);    console.log(array);})
复制代码

打印结果如下:


  • value :获取数组中当前元素的内容

  • index:获取当前元素的索引

  • array:获取整个数组

  • 无返回值

实现各个元素相加

let arr = [2, 5, 8, 11];let num = 0;arr.forEach(value => num += value)console.log("num:" + num);      // 26
复制代码

map()

Array.prototype.map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。与 forEach()用法相似。

  • map 函数可以看成是一种映射函数,而且是一一映射

  • map 适合对一个数组中的每个元素进行相同的操作

实现所有元素数值*2

const array1 = [1, 4, 9, 16];const map1 = array1.map(x => x * 2);console.log(map1);//打印结果:[2, 8, 18, 32]
复制代码

filter()

Array.prototype.filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

  • filter 函数可以看成是一个过滤函数,返回符合条件的元素的数组

  • filter 和 map 的区别:filter 需要在循环的时候判断一下是 true 还是 false,是 true 才会返回这个元素;map 没有这个过程。

  • filter 函数适合筛选一个数组中满足条件的元素,注意:filter 函数只是筛选功能,不能改变元素、操作元素

  • filter 为“过滤”。数组 filter 后,返回过滤后的新数组

根据字符长度筛选元素

const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];const result = words.filter(word => word.length > 6);console.log(result);//打印结果:["exuberant", "destruction", "present"]
复制代码

根据数值筛选元素

const arr = [4, 8, 11, 3, 1, 9];const result = arr.filter(value => value > 5)console.log(result);//打印结果:[8, 11, 9]
复制代码

some()

Array.prototype.some() 方法测试数组中是不是至少有 1 个元素通过了被提供的函数测试。它返回的是一个 Boolean 类型的值。

  • 用来检测是否存在某个数据,存在返回 true,否则返回 false

判断元素是否存在

const array = [1, 2, 3, 4, 5];const even = (element) => element % 2 === 0;console.log(array.some(even));//打印结果:true
复制代码

some() 只用来判断是否存在,一旦检测出存在元素,就会立即停止遍历,返回 true

every()

Array.prototype.every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。

判断所有元素是否满足条件

const array = [1, 2, 3, 4, 5];const even = (element) => element % 2 === 0;console.log(array.every(even));//打印结果:false
复制代码


发布于: 刚刚阅读数: 3
用户头像

bo

关注

还未添加个人签名 2022.07.11 加入

还未添加个人简介

评论

发布
暂无评论
JS数组方法_JavaScript_bo_InfoQ写作社区