美文网首页
数组常用的操作方法

数组常用的操作方法

作者: 一个友好的朋友 | 来源:发表于2018-07-19 17:48 被阅读0次

一些比较简单的、常见的操作方法就不在此赘述了,可以移步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。

相关文章

网友评论

      本文标题:数组常用的操作方法

      本文链接:https://www.haomeiwen.com/subject/kmhapftx.html