JS - 数组操作

1、在任意位置添加或删除元素(splice)

删除任意位置元素

    // splice两个参数,代表删除元素,第一个参数表示索引,从第几个开始删除,第二个参数是要删除的个数。
    // splice 会改变原数组,返回的是删除的值组成的数组
    var arr = [1,2,3,4,5,6];
    var newarr = arr.splice(2,2);
    console.log(arr) // [1,2,5,6]
    console.log(newarr) // [3,4]

在任意位置添加元素

    // splice三个参数,第一个参数表示索引,从第几个开始添加,第二个参数是0,代表删除0个元素,剩下参数是要添加的元素。
    var arr = [1,2,3,4,5,6]
    arr.splice(2,0,0,0,0,0)
    console.log(arr)  // [1,2,0,0,0,0,3,4,5,6] 

在任意位置替换元素

    // splice三个参数,第一个参数表示索引,从第几个开始添加,第二个参数是要删除的个数,
    // 剩下参数是要添加的元素。达到替换元素的功能。
    var arr = [1,2,3,4,5,6]
    var newarr = arr.splice(2,1,1,2,3)
    console.log(arr)    // [1,2,3,4,5,6]
    console.log(newarr) // [3]


2、 数组合并(concat

    // 数组合并concat
    var arr1 = [1,2,3]
    var arr2 = [4,5,6]
    var arr = arr1.concat(arr2)
    console.log(arr) //[ 1, 2, 3, 4, 5, 6 ]


3、遍历 every

  1. 会遍历数组中每个元素,如果每个元素都符合条件,也就是都返回true,结果为true,只要有一个为false,结果就为false
  2. 不会改变原数组
  3. 判断一个数组里面的元素是否都是偶数
    var arr1 = [1,2,3,4,5]
    var arr2 = [2,4,6]
    function isEven(arr){
        return arr.every(item => item % 2 ===0);
    }
    console.log('isEven',isEven(arr1)) // false
    console.log('isEven',isEven(arr2)) // true


4、遍历 some

  1. 会遍历数组中每个元素,只要数组中有1个元素符合条件,结果为true,只有数组全部都是false,结果才为false
  2. 不会改变原数组
  3. 判断一个数组里面的元素是否都大于4
    var arr1 = [1,2,3,4,5,6]
    var arr2 = [1,2,3];
    function fn(arr){
        return arr.some(item => item>4)
    }
    console.log(fn(arr1))   // true
    console.log(fn(arr2))   // false


5、遍历 forEach

  1. 和for 一样,循环整个数组
  2. 不会改变原数组
var arr = [1,2,3,4,5,6];
arr.forEach(function(item){
    console.log(item);
}) // 1 2 3 4 5 6


6、map

  1. 遍历整个数组,需要有返回值
  2. 会改变原数组

7、 filter

  1. 遍历数组,返回使函数返回true的元素
    var arr = [1,2,3,4,5]
    var newarr = arr.filter(item => item> 2)
    console.log(newarr) // [3,4,5]


8、reduce

  1. 累加器,有4个参数
  2. 第1个参数是每次计算的上一个结果,第2个参数是当前值,第3个参数是索引,第4个参数是原数组。第3和第4个参数可省略。
    var arr = [1,2,3]
    var newarr = arr.reduce((prev,curr,index,arr) => {
        return prev+curr
    })
    console.log(newarr) //6


    var newarr = arr.reduce((prev,curr) =>{
        return prev + curr ;
    })
    console.log(newarr) //6


9、for...of迭代

  循环数组中的值

var arr = [1,2,3,4,5]
for(var n of arr){
    console.log(n%2 === 0 ? '偶数': '奇数')
}
//奇数
//偶数
//奇数
//偶数
//奇数


10、from方法

1.Array.from(arr)创建一个数组

    var arr = [1,2,3]
    var newarr = Array.from(arr,x=>x%2===0)
    console.log(newarr) // [false,true,false]

​​​​​​


11、reverse反序


    var arr = [1,2,3]
    var newarr = arr.reverse();
    console.log(newarr);// [3,2,1]


12、sort排序

  sort排序不能按我们想要的大小顺序排序

    var arr = [1,2,3,10,11]
    var newarr = arr.sort(); // [1,10,11,2,3]

  需要手动添加函数判断

    var arr = [1,2,3,10,11]
    var newarr = arr.sort((a,b) => a-b);
    console.log(newarr); // [1,2,3,10,11]


13、indexOf和lastIndexOf

  1. indexOf:返回与参数匹配的第一个元素的索引
  2. lastIndexOf:返回与参数匹配的最后一个元素的索引
var arr = [1,2,3,4,5,4,3,2,1]

var index1 = arr.indexOf(1)
console.log(index1) // 0
var index2 = arr.lastIndexOf(1)
console.log(index2) // 8


14、find和findIndex

  1. find:返回数组中满足条件的第一个元素,如果没有,则返回undefined
  2. findIndex:返回数组中满足条件的第一个元素的索引,如果没有,返回-1​​​​​​​
var arr = [1,2,3,4,5,4,3,2,1]
var it = arr.find(item => item >3)
console.log(it) // 4
var it2 = arr.find(item => item >10)
console.log(it2) // undefined
var index = arr.findIndex(item => item>3)
console.log(index) // 3

15、includes

 

如果数组存在某个元素,includes方法返回true,否则返回false​​​​​​​

    var arr = [1,2,3,4,5]
    var a = arr.includes(1)
    var b = arr.includes(8)
    console.log(a) // true
    console.log(b)  // false

​​​​​​​

参考数组常用方法:github:https://github.com/liangchaofei/algorithm_js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值