js数组方法总结

一、数组

 1. 什么是数组?

在程序中保存一组数据的容器 

2. 与其他容器的区别 

相同点:

都是用来保存数据的

不同点:

1. 数组中一次保存多个数据

2. 变量只能一次保存一条数据

3.对象一次可以保存多条数据,以键值对保存的数据,通过属性或方法保存


二、方法

遍历

(1) forEach()   遍历

    let arr = [1, 5, 6, 2, 3]
    arr.forEach((item, index, a) => console.log('当前项:' + item, '索引:' + index, '本身:' + a))

 (2) reduce() 累加器  

sum: 累加器初始值(或上一次回调函数的返回值)

item:每一项

index:索引

arr 被调用reduce的数组

    let arr = [1, 5, 6, 2, 3]
    let res = arr.reduce((sum, item, index, arr) => {
      console.log(item, index, arr);
      console.log(sum);
      return sum + item
    }, 0)
    console.log('总和' + res);

 (3) filter() 过滤

不会改变原数组   过滤后得到一个新的数组  

    let arr = [1, 5, 6, 2, 3]
    let res = arr.filter(item => item >= 2)
    console.log(res);

(4) push()    向数组尾部添加一个值

    let arr = [1, 5, 6, 2, 3]
    arr.push(8)

(5)pop()   从数组中删除最后一个元素 

    let arr = [1, 5, 6, 2, 3]
    let res = arr.pop();
    console.log(arr);
    console.log(res); //获取删除的值

(6) unshift()  向数组头部添加一个值

    let arr = [1, 5, 6, 2, 3]
    arr.unshift(8)
    console.log(arr);

(7) shift()   从数组头部删除一个值

    let arr = [1, 5, 6, 2, 3]
    let res = arr.shift()
    console.log(arr);
    console.log(res); //从数组中被删除的值

(8)findIndex()  查找第一个满足条件的索引

// 查找第一个满足条件的索引 如果都不满足返回-1    
    let arr = [1, 5, 6, 2, 3]
    let res = arr.findIndex(item => {
      if (item == 2)
        return true  
    }) 
    console.log(res);
//  查找首次满足条件的索引

(9) splice()  从索引开始删除几个 

//第一个参数 索引  第二个参数 删除个数   (如果不指定删除索引后面全部)  
let arr = [1, 5, 6, 2, 3]
    let res = arr.splice(2, 1)
    console.log(res); //从数组中删除的值组成一个新数组
    console.log(arr); // 删除后的数组

(10) indexOf()  查找第一个满足索引的值 

    // 和findIndex的区别就是 findIndex里可以写条件
    let arr = [1, 5, 6, 2, 3]
    let res = arr.indexOf(2)
    console.log(res);

(11) join()    将数组中的元素组成一个字符串

//     join() 中()里的是连接符
    let arr = [1, 5, 6, 2, 3]
    const res = arr.join('——')
    console.log(res);

(12)sort()   排序 

  // 直接使用arr.sort()是错误的  默认排序的是字符串编码 
  //  而下面这种形式可以理解为冒泡排序法 
    let arr = [1, 5, 6, 2, 3]
    let res = arr.sort((a, b) => {
  // 原理:如果a-b>0 就交换位置 
      return a - b
    })
    console.log(res);

(13)lastIndexOf()   查找尾次出现索引的位置

   //查找尾次出现索引的位置  找不到则为-1
    let arr = [1, 5, 6, 2, 3]
    let res = arr.lastIndexOf(6)
    console.log(res);

(14) reverse()   反转数组

    let arr = [1, 5, 6, 2, 3]
    let res = arr.reverse()
    console.log(res);

(15) concat()  拼接成一个新的数组

    let arr = [1, 5, 6, 2, 3]
    let res = arr.concat([1, 2, 3], 1, 8, 6)
    console.log(res);

(16)find() 返回第一个满足条件的元素

    let arr = [1, 5, 6, 2, 3]
    const res = arr.find(item => {
      return item >= 2
    })
    console.log(res);

(17) some() 查找数组里有一个满足就为true 否 false

    let arr = [1, 5, 6, 2, 3]
    let res = arr.some(item => {
      return item >= 2
    })
    console.log(res);

(18)every()  查找数组中所有满足条件的就为true

    let arr = [1, 5, 6, 2, 3]
    let res = arr.every(item => {
      return item >= 2
    })
    console.log(res);

  (19) map递归   让数组中每一个值都进行运算

    let arr = [1, 5, 6, 2, 3]
    let res = arr.map(item => {
      return item * 2
    })
    console.log(res);

(20) Array.from()   将伪数组转换成真数组 

静态方法   使用这个方法必须要有length 

    let o = {
      0: 'aa',
      1: 'bb',
      2: 'cc',
      3: 'dd',
      length: 4
    }
    let arr = Array.from(o)
    console.log(arr);

(21) set()  数组去重

    let arr = ["1", "2", "2", "1", "3", "1"];
    let set = new Set(arr);  // 结果是对象 
    let res = Array.from(set); //对象转换成真数组
    console.log(set);
    console.log(res);
let res = Array.from(new Set(arr))  // 简写 转换成数组

(22) includes 判断数组中是否含有这一项

const vipList = ['/setting']
listVip.includes('/setting') // true

(23)slice

slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。

const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];

console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"]

console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"]

console.log(animals.slice(1, 5));
// expected output: Array ["bison", "camel", "duck", "elephant"]

console.log(animals.slice(-2));
// expected output: Array ["duck", "elephant"]

console.log(animals.slice(2, -1));
// expected output: Array ["camel", "duck"]

写太多写乱了  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值