数组和对象有哪些原生方法

时间:2020-05-01

JavaScript的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。

concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

<script>
    let arr1 = [1,2];
    let arr2 = [2,3];
    let arr3 = [4,5];
    console.log(arr1.concat(arr2));
    console.log(arr1.concat(arr2,arr3));
</script>

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

<script>
    let arr1 = [1, 2, 3, 4, 5];
    console.log(arr1.slice(2, 3));
</script>

splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。

由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。

<script>
    let arr1 = [1, 2, 3, 4, 5];
    console.log(arr1.splice(2, 3));
    console.log(arr1);
</script>
<script>
    let arr1 = [1, 2, 3, 4, 5];
    console.log(arr1.splice(2, 0, 6, 7));
    console.log(arr1);
</script>

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

start​

指定修改的开始位置(从0计数)。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位(从-1计数,这意味着-n是倒数第n个元素并且等价于array.length-n);如果负数的绝对值大于数组的长度,则表示开始位置为第0位。

deleteCount 可选

整数,表示要移除的数组元素的个数。

如果 deleteCount 大于 start 之后的元素的总数,则从 start 后面的元素都将被删除(含第 start 位)。

如果 deleteCount 被省略了,或者它的值大于等于array.length - start(也就是说,如果它大于或者等于start之后的所有元素的数量),那么start之后数组的所有元素都会被删除。

如果 deleteCount 是 0 或者负数,则不移除元素。这种情况下,至少应添加一个新元素。

item1, item2, ... 可选 

要添加进数组的元素,从start 位置开始。如果不指定,则 splice() 将只删除数组元素。

map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

<script>
    let arr1 = [1, 2, 3, 4, 5];
    let arr2 = arr1.map(function (item, index) {
        console.log(item, index);
        return item + 10;
    });
    console.log(arr2);
</script>