JavaScript 数组【4】数组去重 ; 数组concat();slice()

目录

1. 数组去重 利用indexOf 和 push进行【据说面试常问】

2. concat()

3. slice()

4. splice()



1. 数组去重 利用indexOf 和 push进行【据说面试常问】

// 核心思路
// 1. 判断新的数组中有没有旧数组这个元素 利用indexOf进行判断 
// 2. 值若为-1,就push到新的数组里面去


        // 数组的去重
        var arr4 = [100, 100, 300, 300, 401, 501, 601];
        function unique(arr) {
            var newArr = [];
            for (var i = 0; i < arr.length; i++) {
                if (newArr.indexOf(arr[i]) === -1) {
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        }
        console.log(unique(arr4));

2. concat()

参数可以是数字【也可以是其它任意数据类型的元素】

参数可以是数组

参数可以是变量

        // 1. concat方法
        var arr1 = [1, 2, 3];
        // 参数是一个数字
        var arr2 = arr1.concat(4);
        console.log(arr2); // [1, 2, 3, 4]
        console.log(arr1); // [1, 2, 3]
        // 参数是一个数组
        var arr3 = arr1.concat([4, 5, 6]);
        console.log(arr3); // [1, 2, 3, 4, 5, 6]
        // 参数是变量
        var a = [7, 77, 777];
        var b = [9, 99, 999];
        var c = a.concat(b);
        console.log(c); //  [7, 77, 777, 9, 99, 999]

3. slice()

不加参数

加一个参数

两个参数

参数负数等几种情况

        // 2. slice 不影响原有的数组
        var arr4 = [55, 66, 77, 88, 99];
        // 2.1 不加参数
        console.log(arr4.slice()); // [55, 66, 77, 88, 99]
        // 2.2 加一个参数
        console.log(arr4.slice(1)); // [66, 77, 88, 99] 从索引为1的元素开始取到最后一个参数
        // 2.3 加两个参数
        console.log(arr4.slice(0, 2)); // [55, 66] 索引为0 到索引为2之间不包括索引为2的参数
        // 2.4 索引是负数
        console.log(arr4.slice(-2)); // [88, 99] 最后一个元素索引是-1,倒数第二个是-2,表示从倒数第二个元素开始取到最后一个

4.splice()

        // 参数1:从哪个元素开始操作
        // 参数2:删除指定索引的元素
        // 参数3、4:要添加的元素

        // 3. splice() 会修改原来的数组
        var Arr = [1, 2, 3, 4, 5];
        // 3.1 添加元素 从索引为1的这个位置开始添加元素
        Arr.splice(1, 0, 99, 98); // [1, 99, 98, 2, 3, 4, 5] 没有删除元素,但是多了99,98这两个元素
        console.log(Arr);
        // 从索引为0的位置开始添加元素
        Arr.splice(0, 0, 100, 200); //  [100, 200, 1, 99, 98, 2, 3, 4, 5] 发现开头多了100,200这两个元素 
        console.log(Arr);

        // 3.2 删除元素
        Arr.splice(1, 1);
        console.log(Arr);//[100, 1, 99, 98, 2, 3, 4, 5] 发现元素200被删除了

        // 3.3 替换元素
        Arr.splice(1, 1, 87, 97);
        console.log(Arr);// [100, 87, 97, 99, 98, 2, 3, 4, 5] 发现 元素被替换为了87,97

结尾:

学习id: 201903090124-24

现在是大三学生,学习到了前后端交互阶段,如有不对的地方,欢迎指正,一起努力呀。如有转载请注明出处。

如果我的整理对你有帮助,欢迎点个赞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值