精华内容
下载资源
问答
  • 在项目中,我们会遇到需要将一完整的数组分割为固定大小的小数组,在这里我总结了两种方法,分享在这里: 1.使用while进行自己解析 此方案中,试用while循环进行遍历整个数组,考虑到遍历,那当然我们也能够使用...

    在项目中,我们会遇到需要将一个完整的数组分割为固定大小的小数组,在这里我总结了两种方法,分享在这里:

    1.使用while进行自己解析

    此方案中,试用while循环进行遍历整个数组,考虑到遍历,那当然我们也能够使用for循环进行解决

    function group(array, subGroupLength) {
          let index = 0;
          let newArray = [];
          while(index < array.length) {
              newArray.push(array.slice(index, index += subGroupLength));
          }
          return newArray;
      }
    

    这里我简单的试用了下,可以看到处理结果还是挺理想的

    在这里插入图片描述

    2.使用lodash等工具库进行解析

    lodash是一个前端常用的工具库,当然这个需求是可以满足的,具体方法为_.chunk,文档地址在这里: https://www.lodashjs.com/docs/lodash.chunk

    对于该方法,我们能够通过文档学习到,也是需要两个参数的,分别是需要处理的数组和需要分割的大小区块,返回一个包含拆分区块的新数组(注:相当于一个二维数组)。

    _.chunk(['a', 'b', 'c', 'd'], 2); // => [['a', 'b'], ['c', 'd']]
    _.chunk(['a', 'b', 'c', 'd'], 3); // => [['a', 'b', 'c'], ['d']]
    

    顺便我也去看了看源码,大家也看看吧,这个是地址,大佬经常说我从源码学习到啥啥啥的,我们也学学看:https://github.com/lodash/lodash/blob/master/chunk.js

    import slice from './slice.js'
    import toInteger from './toInteger.js'
    
    /**
     * Creates an array of elements split into groups the length of `size`.
     * If `array` can't be split evenly, the final chunk will be the remaining
     * elements.
     *
     * @since 3.0.0
     * @category Array
     * @param {Array} array The array to process.
     * @param {number} [size=1] The length of each chunk
     * @returns {Array} Returns the new array of chunks.
     * @example
     *
     * chunk(['a', 'b', 'c', 'd'], 2)
     * // => [['a', 'b'], ['c', 'd']]
     *
     * chunk(['a', 'b', 'c', 'd'], 3)
     * // => [['a', 'b', 'c'], ['d']]
     */
    function chunk(array, size = 1) {
      size = Math.max(toInteger(size), 0)
      const length = array == null ? 0 : array.length
      if (!length || size < 1) {
        return []
      }
      let index = 0
      let resIndex = 0
      const result = new Array(Math.ceil(length / size))
    
      while (index < length) {
        result[resIndex++] = slice(array, index, (index += size))
      }
      return result
    }
    
    export default chunk
    

    可以看到,这个写法和第一种方案差不多哈。

    同样的,也可以通过工具库underscorejs进行处理,方法细节在这里,点击进入获取:https://www.underscorejs.com.cn/chunk


    展开全文
  • * 将数组拆分成多个size长度的区块,并将这些区块组成一个新的数组。如果数组儒法被分隔全部等长的区块,那么最后剩余的元素将组成一个区块 * Create an array of elements split into grounps the length of '...
    /**
     * 将数组拆分成多个size长度的区块,并将这些区块组成一个新的数组。如果数组儒法被分隔成全部等长的区块,那么最后剩余的元素将组成一个区块
     * Create an array of elements split into grounps the length of 'size'.
     * if 'array' cant be split evenly, the final chunk will be the remaining elements.
     *
     * @param {Array} array The array to process
     * @param {number} {size = 1} The length of each chunk
     * @returns {Array} Returns the new array of chunks
     * @example
     *
     * chunk(['a', 'b', 'c', 'd'], 2)
     * // => [['a', 'b'], ['c', 'd']]
     *
     * chunk(['a', 'b', 'c', 'd'], 3)
     * // => [['a', 'b', 'c'], ['d']]
     *
     * chunk(['a', 'b', 'c', 'd'], -1)
     * // => []
     *
     * chunk('66666', 2)
     * // => [['6', '6'], ['6', '6'], ['6']]
     */
    
    import toInteger from "../Lang/toInteger" //请搜索之前的文章 ‘转换为整数’
    
    function slice(array, start, end) {
      let length = array == null ? 0 : array.length
      if (!length) {
        return []
      }
      start = start == null ? 0 : toInteger(start)
      end = end === undefined ? length : toInteger(end)
    
      if (start < 0) {
        start = -start > length ? 0 : length + start
      }
      end = end > length ? length : end
      if (end < 0) {
        end += length
      }
      length = start > end ? 0 : (end - start) >>> 0 // 向上取整
      start >>>= 0 // 向下取整
    
      let index = -1
      const result = new Array(length)
      while (++index < length) {
        result[index] = array[index + start]
      }
      return result
    }
    
    function chunk(array, size = 1) {
      size = Math.max(size, 0)
      const length = array === null ? 0 : array.length
      if (!length || size < 1) {
        return []
      }
      let index = 0
      let resIndex = 0
      const result = new Array(Math.ceil(length / size)) //向上取整
    
      while (index < length) {
        result[resIndex++] = slice(array, index, (index += size))
      }
      return result
    }
    
    export default chunk
    

     

    展开全文
  • js中,一个数组拆分成个数组

    千次阅读 2020-07-15 09:40:27
    在网上偶尔看到有一代码,一个数组拆分成多个数组,想起以前有过这样的需求,不知道方法,现记录下来 // size每组数组多少个,如:8 // array需要拆分的数组 const arrayChunk = (array, size) => { let data = ...

    在网上偶尔看到有一代码,一个数组拆分成多个数组,想起以前有过这样的需求,不知道方法,现记录下来

    // size每组数组多少个,如:8
    // array需要拆分的数组
    function arrayChunk(array, size){
      let data = []
      for (let i = 0; i < array.length; i += size) {
        data.push(array.slice(i, i + size))
      }
      return data
    }
    
    展开全文
  • 使用js数组拆分成小数组

    千次阅读 2018-07-18 11:56:58
    最近项目需要将后台返回的数组拆分成二维数组,然后进行渲染。想了一下,不如写一封装函数。 代码如下: split_array=(arr,len)=&gt;{ let arr_length = arr.length; let newArr = []; for(let i=0;i&...

    最近项目需要将后台返回的数组拆分成二维数组,然后进行渲染。想了一下,不如写一个封装函数。

    代码如下:

    split_array=(arr,len)=>{
    	let arr_length = arr.length;
    	let newArr = [];
    	for(let i=0;i<arr_length;i+=len){
    		newArr.push(arr.slice(i,i+len));
    	}
    	return newArr;
    }
    
    let data = ['赵','钱','孙','李','周','吴'];
    
    let result = split_array(data, 3);

     

    展开全文
  • /** * 分割数组创建二维数组封装 * @param data 数组 * @param senArrLen 需要分割成子数组的长度 ... //处理len一组的数据 let data_len = data.length; let arrOuter_len = data_len % ...
  • 在工作中有时前台展示需求的不同要把后台的数组对象进行再分类。 举栗子:   let arr = [ { date: '2018-01-06',SW: '90.95', LL: '136', XXSW: '80.22',CKLL: '500' }, { date: '2018-01-06', SW: '164.95...
  • 现在有这样一个数组,后端给的, policyDtos: [{clazzType: 1, clazzTypeText: '限签', remark: '严格限签', sourceTypeText: '地区收集'}, {clazzType: 2, clazzTypeText: '限售', remark: '限售', sourceTy
  • JS 根据数组对象属性值分类,把一个数组拆分多个数组 在工作中有时前台展示需求的不同要把后台的数组对象进行再分类。 举个栗子: this.BaseLineAndLessonLearnByGroupList= [ { name: 'BaseLine', ...
  • javascript怎么把一json的数组拆分到两json里,而且都要排序 javascript怎么把一json的数组拆分到两json里,而且都要排序
  • batch(3, ' ') %} {% for article in article_row %} {{ article }} {% endfor %} {% endfor %} So, is there a way to do like above in vue.js? 解决方案 I would use helper groups array to render groups of ...
  • 记录一下工作中遇到的数据拆分问题。 场景一: 一维数组的结构为[value,value … ,value]; $arr1 = array('张三','李四','王五'); $arr2 = array(18,19,20); $arr3 = array('man','man','women'); <?php $arr1...
  • 作者:Abhilash Kakumanu 译者:前端小智 来源:stackabuse 有梦想,有干货,微信搜索 【大迁世界】 关注这在...在本文中,我们研究一下如何在 JS 中将数组拆分为n大小的块。 具体来说,主要研究两种方法: 使.
  • function group(data,index) { if(data && index == 0){ var data = data.splice(0,Math.floor(data.length/2)) }else { var data = data.splice(Math.floor(data.length/2)) } return data;...
  • function group(array, subNum) { let index = 0; let newArray = []; while(index < array.length) { newArray.push(array.slice(index, index += subNum)); } return newArray;...var Array = [1,2,3,4,5,6,...
  • array_chunk() - 将一个数组分割成多个

    千次阅读 2018-06-06 18:30:44
    array_chunk() - 将一个数组分割成多个
  • 多个分隔符作为数组拆分字符串功能(它既支持数组作为分隔符,也支持一个分隔符作为字符串) 没有本机函数或方法可以支持提供多个分隔符的数组,唯一的本机方法是使用正则表达式作为分隔符。 将split与regex配合...
  • 1,将数组array分成长度为subGroupLength的小数组并返回新数组 function group(array, subGroupLength) { let index = 0; let newArray = []; while(index < array.length) { newArray.push(array.slice...
  • js将一个数组分割成多个子数组

    万次阅读 2018-11-01 16:25:57
    将一数组分割许多小数组保存起来。 /** * 分割数组创建二维数组封装 * @param data 数组 * @param senArrLen 需要分割成子数组的长度 */ let splitArr = (data , senArrLen)=&gt;{ //处理len一...
  • 给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。 示例 1: 输入: [1,4,3,2] 输出: 4 解释: n 等于 2, 最大总和为 4...
  • 数组array分成长度为subGroupLength的小数组并返回新数组 function group(array, subGroupLength) { let index = 0; let newArray = []; while(index < array.length) { newArray.push(array.slice(index, ...
  • 从下标为2开始,截取3数组截取. ** <?php $arr=array( 'title1'=>'linux', 'title2'=>'java', 'title3'=>'php', 'title4'=>'js', 'title5'=>'shell', 'title6'...
  • 需求是:根据json的tier值把一维度json数组拆分为多维json数组,而且结果必须是在同一个数组中。 下面已经实现了一个手动版的[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/13.gif][/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,570
精华内容 8,228
关键字:

js数组拆分成多个数组