es6 数组语法15个总结,前端的你一定会有用到的时候

427 阅读5分钟

pusgh() 添加数组

1. push方法 返回添加后的数组的长度
let arr = [1,2,3,4,5]
console.log(arr.push(5))   // 6
console.log(arr) // [1,2,3,4,5,5]

unshift() 添加数组

2.unshift()从前面添加元素, 返回值是添加完后的数组的长度
let arr = [1,2,3,4,5]
console.log(arr.unshift(2))    // 6
console.log(arr)  //[2,1,2,3,4,5]
  • 一 总结pusgh()跟unshift()都是添加数组,同时也都返回添加后的长度。区别在于pusgh添加到数组后面unshift添加到数组前面

pop() 删除数组

3.pop 从数组后删除,且只能删除一个, 返回值为删除后的的元素
 let arr = [1,2,3,4,5]
 console.log(arr.pop())  // 5
 console.log(arr)  //[1,2,3,4]

shift() 删除数组

4.pop 从数组前删除,且只能删除一个, 返回值为删除后的的元素
let arr = [1,2,3,4,5]
console.log(arr.shift())  // 1
console.log(arr)   // [2,3,4,5]·

splice(i,n) 删除指定元素

5.删除从i(索引值)开始之后的n个元素。返回值是删除的元素
let arr = [1,2,3,4,5]
console.log(arr.splice(2,2))     //[3,4]
console.log(arr)    // [1,2,5]

根据splice可借题发挥 删除对象数组中的某一项 例如:找到以下数组 找到id为2的对象,并且删除它

const array = [
  { id: 1, name: '张三' },
  { id: 2, name: '张四' },
  { id: 3, name: '张五' },
];

array.splice(
  array.findIndex((item) => item.id == 2),
  1,
);
console.log(array); //[ { id: 1, name: '张三' }, { id: 3, name: '张五' },]
总结:二 1.p 跟 shift 都是删除数组并且都智能删除一个 pop是删除前面的value ,shift 删除的则是后面的
        2 shplice 删除数组,可以删除多个shplice (i,n) 删除从定i个元素开始后面的n个元素

concat() 连接/合并数组

6.接两个数组 返回值为连接后的新数组, 不改变原数组的值
let arr = [1,2,3,4,5]
console.log(arr.concat([1,2]))  // [1,2,3,4,5,1,2]
console.log(arr)   // [1,2,3,4,5]

split() 字符串转数组

7.将字符串转化为数组
let str = '123456'
console.log(str.split('')) // ["1", "2", "3", "4", "5", "6"]

sort() 排序

8.将数组进行排序,返回值是排好的数组,默认是按照最左边的数字进行排序,不是按照数字大小排序的
let arr = [2,10,6,1,4,22,3]
console.log(arr.sort())   // [1, 10, 2, 22, 3, 4, 6]
8.2我们可以设置数组从小到大排序
let arr1 = arr.sort((a, b) =>a - b)  
console.log(arr1)   // [1, 2, 3, 4, 6, 10, 22]
8.3我们可以设置数组从大到小排序
let arr2 = arr.sort((a, b) =>b-a)  
console.log(arr2)  // [22, 10, 6, 4, 3, 2, 1]

reverse() 反转

9. 数组进行反转 返回值是 反转后的数组,同时会改变原数组
let arr = [1,2,3,4,5]
console.log(arr.reverse())    // [5,4,3,2,1]
console.log(arr)    // [5,4,3,2,1]

slice() 切割数组

10.切去索引值start到索引值end的数组,不包含end索引的值,返回值是切出来的数组   
let arr = [1,2,3,4,5]
console.log(arr.slice(1,3))   // [2,3]
console.log(arr)    //  [1,2,3,4,5]

forEach() 遍历数组

  11.遍历数组,无return **即使有return,也不会返回任何值,并且会影响原来的数组 value:当前数组, index:索引 , array:原数组
  • forEach() 为异步函数
  • forEach() 为异步函数
  • forEach() 为异步函数
  • 重要的事情说3遍
let arr = [1,2,3,4,5]
arr.forEach( (value,index,array)=>{
     console.log(`value:${value}    index:${index}     array:${array}`)
    })   
    //  value:1    index:0     array:1,2,3,4,5
    //  value:2    index:1     array:1,2,3,4,5
    //  value:3    index:2     array:1,2,3,4,5
    //  value:4    index:3     array:1,2,3,4,5
    //  value:5    index:4     array:1,2,3,4,5

为了验证foreach 的异步 这里也举个例子

let arr = [1,2,3,4,5]

arr.forEach( (value,index,array)=>{
        value = value * 2
    })   
    console.log(arr)  [1, 2, 3, 4, 5]

这里我们期待的是能每个值X5 得到 [5,10...],但是有由于foreach的异步我们并没有成功,控制台还是给我打印了 [1, 2, 3, 4, 5], 所以要想得到改变的数组foreach这里就不适合了!

map(callback) 映射遍历数组

12. map也是遍历数组,并且有返回值,返回值为一个新的数组。

var arr1 = [1,2,3,4]; 
var res1 = arr1.map((item,index,arr)=>{ 
 item = item * 3; 
 return item; 
})
console.log(arr1); // [1,2,3,4]
console.log(res1); // [3,6,9,12]

所以接上面例子我们不难看出map跟forEach的区别了!

filter(callback) 过滤查找

13 过滤/查找数组,返回一个满足要求的数组,不改变原数组
let arr = [1,2,3,4,5]
let arr1 = arr.filter( (value, index) => value<3)
console.log(arr1)    // [1, 2]

every(callback):Boolean 查找

14 判断条件,数组的元素是否全满足,若满足则返回ture
let arr = [1,2,3,4,5]
let arr1 = arr.every( (value, index) =>value<3)
console.log(arr1) // false
let arr2 = arr.every( (value, index) =>value<6)
console.log(arr2)  // true

some(callback):Boolean 查找

15 依据判断条件,数组的元素是否有一个满足,若有一个满足则返回 true
let arr = [1,2,3,4,5]
let arr1 = arr.every( (value, index) =>value<3)
console.log(arr1) // false
let arr2 = arr.every( (value, index) =>value<6)
console.log(arr2)  // true

reduce(callback) 累加/计算

16 迭代数组的所有项,累加器,数组中的每个值(从左到右)合并,最终计算为一个值
callback: 
    previousValue 必选 --上一次调用回调返回的值,或者是提供的初始值(initialValue)
    currentValue 必选 --数组中当前被处理的数组项
    index 可选 --当前数组项在数组中的索引值
    array 可选 --原数组
initialValue: 可选 --初始值

let arr = [0,1,2,3,4]
let arr1 = arr.reduce((preValue, curValue) => 
    preValue + curValue
)
console.log(arr1)    // 10
最后如果觉得有用别忘记点赞哟!