zoukankan      html  css  js  c++  java
  • 将数组分割为几个等长度的子数组(使用slice)

    先了解一下slice方法:

    slice()

    1.定义:slice()可从已有数组中截取返回指定的元素,形成一个新的数组;

    语法:arrayObject.slice(start,end);

    参数 描述
    start    必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
    end  可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

    2. 返回值 
    返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。 
    3. 说明 
    请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

     封装slice() : 将数组分割为几个等长度的子数组

    /*
     *array分割的原数组
     *size 分割成等长子数组的长度
     */
    
    function sliceArray(array,size){
        var result = [];
        for(var i=0;i<Math.ceil(array.length/size);i++){
               var start = i * size;
               var end = start + size;
               result.push(array.slice(start, end));
        }
        return result;  
    }

    下面我们测试一个例子

    var arr = [1,1,2,3,45,67,88,67,7,9,0,4,6,77,8,99,54,24];

    var array = sliceArray(arr,4);

    console.log(array);

    以上就是想要的结果。

    注:删除数组最后几个元素返回删除的数组 例如:arr=[1,2,3,5,5,6,6,8,9,11] arr.slice(-5); result:delArr=[6,6,8,9,11];

    想要得到删除后的数组arr.slice(0,arr.length-5);

    将几个数组合并为一个数组concat()

    1. 定义和用法 
      concat() 方法用于连接两个或多个数组。 
      该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
    2. 语法 
      arrayObject.concat(arrayX,arrayX,……,arrayX)
    3. 例子:
      1 var arr1 = [1,2,3]; 
      2 var arr2 = [4,5,6];
      3 var arr = []; 
      4 arr.concat(arr1, arr2); //输出[1, 2, 3, 4, 5, 6]
  • 相关阅读:
    curl查询公网出口IP
    Linux scp命令
    docker 安装 MySQL 8.0
    Ubuntu下apt方式安装与更新Git
    第2章 一切都是对象
    Mave实战(1)——Maven介绍
    关于Identityserver4和IdentityServer3 授权不兼容的问题
    装箱和拆箱、类型比较
    接口自动化用例(Fitnesse)中批量获取系统链路日志
    man时括号里的数字是啥意思
  • 原文地址:https://www.cnblogs.com/shixy1617/p/7562280.html
Copyright © 2011-2022 走看看