zoukankan      html  css  js  c++  java
  • 删除数组末尾元素

    题目描述

    删除数组 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 }

    来源:牛客网

  • 相关阅读:
    LeetCode153.寻找旋转排序数组中的最小值
    LeetCode88.合并两个有序数组
    分析树
    LeetCode119.杨辉三角 II
    ssh传输文件
    ubuntu arm妙算加载cp210x驱动
    terminator终端工具
    ros使用rplidar hector_mapping建地图
    launch文件
    eclipse配置ros cakin编译环境
  • 原文地址:https://www.cnblogs.com/daheiylx/p/8877099.html
Copyright © 2011-2022 走看看