JavaScript 数组要领对照

媒介:JavaScript 供应了多种新增,移除,替代数组元素的要领,然则有些会影响本来的数组;有些则不会,它是新建了一个数组。

ps:在最先说明:var l = console.log.bind(console)

新增

1:影响原数组


    let arr = [1,2,3,4];
    arr.push(5)//[1, 2, 3, 4, 5];
    arr.unshift(0)//[0, 1, 2, 3, 4, 5]

2:不影响原数组
运用concat要领:


    let arr = [1,2,3,4];
    arr.concat(5);
    l(arr) //[1,2,3,4]

运用JavaScript 的睁开(spread)操作符,睁开操作符是三个点(…)


    let arr1 = [1,2,3,4];
    let arr2 = [...arr1,5];
    l(arr2)//[1, 2, 3, 4, 5]
    l(arr1)//[1, 2, 3, 4, 5]

删除

1:影响原数组


    let arr = [1,2,3,4];
    l(arr.pop());//4 取到末了一个
    l(arr)//[1,2,3] 原数组被转变
    l(arr.shift());//1 取到第一个
    l(arr)//[2,3] 原数组被转变

运用Array.splice()要领


    let arr = ['a','b','c','d'];
    arr.splice(1,2)//1代表从索引为1的数最先('b'),2代表删除('b','c')这两个元素,也就完成了删除这个目标
    l(arr)["a","d"]

2:不影响原数组
运用Array.filter要领 基于原数组建立一个新数组,新数组仅包括婚配特定条件的元素


    let arr = [1,2,3,4];
    l(arr.filter(e => e !== 3))//[1, 2, 4] ,e 代表arr中的每一项
    l(arr)//[1, 2, 3, 4] 原数组未被转变

运用Array.slice要领


    let arr = ['a','b','c','d'];
    l(arr.slice(1,2)); //["b"]
    l(arr);//["a", "b", "c", "d"]

替代

1:影响原数组
运用Array.splice()要领


    let arr = ['a','b','c','d'];
    l(arr.splice(1,2,'e','f'))//["b", "c"]
    l(arr)//["a", "e", "f", "d"]

2:不影响原数组
运用Array.map()要领


    let arr = ['a','b','c','d'];
    let arr1= arr.map(item => {
        if (item == 'b') {
            item = 'f'
        }
        return item
    } )
    l(arr1)//["a", "f", "c", "d"]
    l(arr)//['a','b','c','d']
    原文作者:莉莉安
    原文地址: https://segmentfault.com/a/1190000008272808
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞