牛客网刷题-02

**

基础知识

**
1.splice()从数组中添加/删除项目

arr.splice(2,0,"William")

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
注释:该方法会改变原始数组。

2.slice() 可从已有的数组中返回选定的元素

var newArr = arr.slice(0);  // slice(start, end)浅拷贝数组

3.pop() 删除最后一个元素
pop() 方法用于删除并返回数组的最后一个元素

pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

4.push()在末尾添加元素

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

5.shift()删除第一个元素
删除数组第一个元素

6.filter() 过滤数组元素
filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。

和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。

7.conact()
concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

语法
arrayObject.concat(arrayX,arrayX,…,arrayX)

例题

6:删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组

//利用slice
function truncate(arr) {
    return arr.slice(0,-1);
}
//利用filter
function truncate(arr) {
    return arr.filter(function(ele.index,arr) {
        return index!==arr.length-1;
    });
}
//利用push.apply+pop
function truncate(arr) {
    var newArr=[];
    [].push.apply(newArr, arr);
    newArr.pop();
    return newArr;
}
//利用join+split+pop    注意!!!:数据类型会变成字符型
function truncate(arr) {
    var newArr = arr.join().split(',');
    newArr.pop();
    return newArr;
}
//利用concat+pop
function truncate(arr) {
    var newArr = arr.concat();
    newArr.pop();
    return newArr;
}
//普通的迭代拷贝
function truncate(arr, item) {
    var newArr=[];
    for(var i=0;i<arr.length-1;i++){
        newArr.push(arr[i]);
    }
    return newArr;
}

猜你喜欢

转载自blog.csdn.net/Pandora_417/article/details/89188592