JS数组方法

forEach()

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

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

打印结果如下:

forEach()

  • value:获取数组中当前元素的内容
  • index:获取当前元素的索引
  • array:获取整个数组
  • 无返回值

实现各个元素相加

1
2
3
4
let arr = [2, 5, 8, 11];
let num = 0;
arr.forEach(value => num += value)
console.log("num:" + num); // 26

map()

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

  • map函数可以看成是一种映射函数,而且是一一映射
  • map适合对一个数组中的每个元素进行相同的操作

实现所有元素数值*2

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

filter()

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

  • filter函数可以看成是一个过滤函数,返回符合条件的元素的数组
  • filter和map的区别:filter需要在循环的时候判断一下是true还是false,是true才会返回这个元素;map没有这个过程。
  • filter函数适合筛选一个数组中满足条件的元素,注意:filter函数只是筛选功能,不能改变元素、操作元素
  • filter为“过滤”。数组filter后,返回过滤后的新数组

根据字符长度筛选元素

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

根据数值筛选元素

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

some()

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

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

判断元素是否存在

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

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

every()

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

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

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

请我喝[茶]~( ̄▽ ̄)~*

boW 微信支付

微信支付

boW 支付宝

支付宝

boW 贝宝

贝宝