数组常用的操作方法

一些比较简单的、常见的操作方法就不在此赘述了,可以移步MDN_Array。例如

pop,push ,shift,unshift,splice,slice,concat,jion ,reverse,sort

在以上的方法中注意

1、splice的3种用法,增加、修改、删除
2、slice 是截取从索引nm(不包含m)
3、sort排序的原理(将一个从1到n的数组无序的输出)

本文主要介绍以下操作方法:

find、some、every、filter、forEach、includes、map、reduce

1、find

方法返回数组中满足提供的测试函数的第一个元素的值。否则返回undefined

let ary=[12,31,46];

// 1.find
let temp=ary.find(item=>item%2===0);
console.log(temp);
// 输出
 12

注意:
1、当找到一个满足条件的元素后,马上break,不再往后查询;
2、返回值:数组中的一个值/ undefined

2、some

some() 方法测试数组中的某些元素是否通过由提供的函数实现的测试。

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

//输出 
true

返回值:true / false

3、every

every() 方法测试数组的所有元素是否都通过了指定函数的测试。

 let arr = [1,2,3,4,5];
 let result = arr.every(function (item, index) {
       return item > 0
   });
 console.log(result);

//输出
 true

返回值:true / false

4、filter

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

let arr=[1,3,5,8,22,35];

console.log(arr.filter((item) => {
    return item > 3;
}));

//输出 [ 5, 8, 22, 35 ]

返回值:一个新的数组;如果没有,则是空数组。

5、forEach

forEach() 方法对数组的每个元素执行一次提供的函数。

function logArrayElements(element, index, array) {
    console.log("a[" + index + "] = " + element);
}

[2, 5,,9].forEach(logArrayElements);
//输出
a[0] = 2
a[1] = 5
a[3] = 9
注意:a[2]没有输出,这是因为没有定义该项;但是有占位,此时它的值是undefined

注意:没有返回一个新数组! & 没有返回值!
应用场景:为一些相同的元素,绑定事件处理器!

6、includes

includes( )方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。

let ary=[12,31,46];
console.log(ary.includes(31));
//输出
true

返回值:true / false

7、map

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

let new_array = arr.map(function callback(currentValue, index, array) { 
    // Return element for new_array 
}[, thisArg])
let ary=[12,31,46];
//4.map 创建一个新的数组,其结果是该数组中每个元素都调用一个提供的函数执行后的结果
console.log(ary.map(item => item * 10));

返回值:一个新数组,每个元素都是回调函数的结果。

8、reduce

reduce() 方法对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。

let arr=[0, 1, 2, 3, 4];
let sum=arr.reduce(function(accumulator, currentValue, currentIndex, array){
    return accumulator + currentValue;
},10);

console.log(sum);

//输出
20

返回值:函数累计处理的结果

总结:
1、includes和some、every的用法相似,并且返回值都是true / false ,区别在于判断逻辑不同。
2、filter,map的返回值都是数组,filter是在原数组上筛选符合条件的元素;map则是对原数组的每一个元素都进行处理,然后返回新的数组。
3、比较奇特的是forEach是没有返回值的,reduce的返回值是 一个函数累计处理的结果。
4、find的返回是数组中的某个元素;或者是undefined。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 数组总共有22种方法,本文将其分为对象继承方法、数组转换方法、栈和队列方法、数组排序方法、数组拼接方法、创建子数组...
    Sachie阅读 1,016评论 0 7
  • 1. 前言 近年来,人工智能与大数据的话题越来越火,具有加速改变世界现状的趋势,无人可以阻挡。2017年5月27日...
    BarryTan阅读 5,011评论 8 21
  • 我从来不存在,在红尘之中徘徊,越走越觉得无奈。念,若真诚一些;爱,若不仅仅只是依赖……戏外,谁又懂得珍惜谁灵魂之外...
    鸣桐阅读 275评论 0 0
  • Use MacType on Windows for Typora[1] 标签(空格分隔): MacType Ty...
    lumicinta阅读 967评论 1 0
  • 前几天给个朋友发微信,没有回我,在我的想法中,朋友就要总联系,要不在亲的朋友也会疏远。今天又给她发微信,回我,告诉...
    姓张那女孩子阅读 156评论 0 1

友情链接更多精彩内容