ES6中数组常用的几个方法

1、forEach

  功能:遍历数组的全部元素,利用回调函数对元素做相应处理,
  注意:  forEach()函数不支持 break; 跳出循环,也没有返回值,return只用于跳出当前循环,进入下一轮循环。

  示例:

let arr = [
            {name:"chencan",age:20},
            {name:"ouyangxiu",age:24},
            {name:"tiger",age:45},
            {name:"mike",age:77}];
arr.forEach(v => {
    if (v.name === "tiger") {
        return;
    }
    console.log(v.name + "--" + v.age);
}) 

// chencan--20
// ouyangxiu--24
// mike--77

 

2、find

  功能:不创建新数组,不改变原数组,遍历数组,返回数组中找到的第一个符合条件的元素,找到后立即跳出整个循环,没找到返回undefind

  示例:

# 第一种情况
let arr = [1,2,3,4,5,6];
let newArr = arr.find(item => {
   return item >3 && item < 6; 
});
//newArr = 4


# 第二种情况
let arr = [1,2,3,4,5,6];
let newArr = arr.find(item => {
   return item >6 && item < 10; 
});
//newArr = undefind

 

 

3、some

  功能:用于检测数组中的元素是否符合条件,如果有哦一个元素符合则返回true,否则返回false;

  示例:

let arr = [1,2,3,4,5];
let newArr = arr.some(item => {
   return item > 3; 
});
//newArr = true

let arr = [1,2,3,4,5];
let newArr = arr.some(item => {
   return item > 10; 
});
//newArr = false

 

 

4、map

  功能:在不改变原数组的情况下,更新数组,并返回这个新数组

  示例:

let  arr = [1,2,3,4,5];
let newArr = arr.map(item => {
    //可以对原数组中的值进行相应处理
    return `这是第${item}次`;
})

//newArr = ["这是第1次","这是第2次","这是第3次","这是第4次","这是第5次"]

 

 

5、filter

  功能:在不改变原数组的情况下,创建一个数组,新数组内容是方法中判断为true的所有元素组合成的新数组

  示例:

let arr = [1,2,3,4,5,6,7,8,9,10];
let newArr = arr.filter(item => {
   return item%2 === 0; 
});

//newArr = [2,4,6,8,10]

 

6、reduce

  功能:叠加数组,
  回调函数的参数:
    pre: 上一次计算的结果
    next: 当前元素的下一项
    index: next项的序列
    arr: 数组本身

  示例:

// 求和计算
var arr = [1,2,3,4]
let sum = arr.reduce((prev, next, index) => {
  console.log(prev, next, index)  // index 从1开始
  /*
    *第一次:pre-->1  next-->2  index--> 1
    *遍历计算return得结果为pre+next=1+2=3
    *第二次:pre-->3  next-->3  index-->2
    *遍历计算return得结果为pre+next=3+3=6
    *第三次:pre-->6  next-->4  index-->3
    *遍历计算return得结果为pre+next=6+4=10
    */
  return prev + next  
})
console.log(sum) // 10

//扁平化数组
var arr = [[1,2],[3,4,5],[6,7]]
let sumArr = arr.reduce((prev, next, index) => {
  console.log(prev, next, index)  // index 从1开始
  return prev.concat(next)  
})
console.log(sumArr) // [1, 2, 3, 4, 5, 6, 7]

//对象数组叠加计算
var arr = [
{price:10,count:1}, {price:15,count:2}, {price:20,count:3}]; let sum = arr.reduce((prev, next, index) => { console.log(prev, next, index) // index 从0开始 // 0 {price: 10, count: 1} 0 // 1 {price: 15, count: 2} 1 // 2.5 {price: 20, count: 3} 2 //当需要操作第一项的时候,利用reduce(callbreak(){},往数组第一项前添加一项,如:0),index也从0开始 return prev + next.price*0.1 }, 0) console.log(sum) // 4.5

 

 

7、every

 

8、includes

  功能:判断数组中是否包含某个值,不用return,也不用回调函数

  示例:

let arr = [1,2,3,4,5,6,7];
let new1 = arr.includes(2);   // true
let new2 = arr.includes(2);   // false

 

9、join

  功能:方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的

let  arr = ["zhangsan", "lisi", "wangwu", "zhaoliu"];
let result = arr.join(",");

//result的值
"zhangsan,lisi,wangwu,zhaoliu"

 

posted @ 2022-08-15 17:27  手可摘星陈1024  阅读(1546)  评论(0编辑  收藏  举报