• 删除数组末尾元素


    题目描述

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

     

    第一种方法(concat  +  splice):

    1 function truncate(arr) {
    2     var newArr = arr.concat();//concat(item)连接生成新数组,无item则是浅复制
    3     newArr.splice(arr.length-1,1);//splice第一个参数为要删除的起始位置,第二个参数为删除的个数
    4     return newArr;
    5 }

    第二种方法(concat  +  pop):

    1 function truncate(arr) {
    2     var newArr = arr.concat();
    3     newArr.pop();//pop()返回的是数组末尾元素
    4     return newArr;
    5 }

    第三种方法( filter ):

    1 function truncate(arr) {
    2     //filter利用指定函数确定是否在返回的数组中包含某一项
    3     var newArr = arr.filter(function(item,index,arr){  
    4         return index != arr.length-1; 
    5     });
    6     return newArr;
    7 }

    第四种方法(join + split + pop):

     1 function truncate(arr) {
     2     /*join(元素) 方法用于把数组中的所有元素放入一个字符串。
     3      元素是通过指定的分隔符进行分隔的。
     4      如:
     5      arr.join() 返回 1,2,3
     6      arr.join('/') 返回 1/2/3 
     7      
     8      split(元素)指定分隔符,返回新数组
     9      */
    10     var newArr = arr.join().split(',');
    11     newArr.pop();
    12     return newArr;
    13 }

    第五种方法(apply  +  pop):

    1 function truncate(arr) {
    2     /*
    3     apply(thisObj,[argArray]) :应用某一对象的一个方法,用另一个对象替换当前对象。实际上是改变函数体内 this 的值 
    4     */
    5     var newArr = [];
    6     [].push.apply(newArr , arr);
    7     newArr.pop();
    8     return newArr;
    9 }

    第六种方法(for循环赋值):

    1 function truncate(arr) {
    2     var newArr = new Array();
    3     for(var i = 0; i<arr.length ; i++){
    4         newArr[i] = arr[i];
    5     }
    6     newArr.pop();
    7     return newArr;
    8 }

    来源:牛客网

  • 相关阅读:
    Maven setting配置镜像仓库
    MyBatis配置Mapping,JavaType和JDBCType的对应关系,#与$区别
    Git常用命令
    Js JSON.stringify()与JSON.parse()与eval()详解及使用案例
    例:判断是不是自有属性hasOwnProperty方法
    JS中原型链中的prototype与_proto_的个人理解与详细总结
    原型理解:prototype
    JS中attribute和property的区别
    面试题术语
    函数语法
  • 原文地址:https://www.cnblogs.com/daheiylx/p/8877099.html
Copyright © 2020-2023  润新知