首页 > 编程语言 >JavaScript中指定大小分割数组的一种实现

JavaScript中指定大小分割数组的一种实现

时间:2024-05-08 10:24:04浏览次数:25  
标签:分割 name JavaScript arr name3 数组 fixed id

今天分享一个使用JavaScript分割数组为多个自数组的方法实现。我使用它的场景如下:

给定一个数组 arr 和指定大小 fixed:

const arr = [
	{
		id: 1,
		name: 'name1'
	},
	{
		id: 2,
		name: 'name2'
	},
	{
		id: 3,
		name: 'name3'
	},
	{
		id: 4,
		name: 'name4'
	},
	{
		id: 5,
		name: 'name5'
	},
	{
		id: 6,
		name: 'name6'
	},
	{
		id: 7,
		name: 'name7'
	},
	{
		id: 8,
		name: 'name8'
	},
	{
		id: 9,
		name: 'name9'
	}
]
const fixed = 2;

期望的结果是生成一个数组,数组中包含5个数组,如下:

[
  [ { id: 1, name: 'name1' }, { id: 2, name: 'name2' } ],
  [ { id: 3, name: 'name3' }, { id: 4, name: 'name4' } ],
  [ { id: 3, name: 'name3' }, { id: 6, name: 'name6' } ],
  [ { id: 3, name: 'name3' }, { id: 6, name: 'name6' } ],
  [ { id: 3, name: 'name3' }, {} ]
]

按照 fixed 的大小分割,如果遇到不够 fixed 大小的,使用空对象填充。这种场景对表格数据填充需要等宽或者等数量会有所帮助。
具体实现代码如下:

/**
 *
 * @param {arr} 要分割的数组
 * @param {fixed} 指定分割的大小
 **/
function splitArr(arr, fixed) {
	let result = [];
	let size = arr.length;
	let len = Math.ceil(arr.length / fixed);//向上取整
	for(let i=0; i<len; i++){
		let tempArr = [];
		for(let j=0; j<fixed; j++){
			if((i*fixed)+j >= size){
				tempArr[j] = {}
			}else{
				tempArr[j] = arr[j];
			}
		}
		result.push(tempArr);
		if(arr.length > 0){
			arr.splice(i, fixed);
		}
	}
	return result;
}

const arr = [
	{
		id: 1,
		name: 'name1'
	},
	{
		id: 2,
		name: 'name2'
	},
	{
		id: 3,
		name: 'name3'
	},
	{
		id: 4,
		name: 'name4'
	},
	{
		id: 5,
		name: 'name5'
	},
	{
		id: 6,
		name: 'name6'
	},
	{
		id: 7,
		name: 'name7'
	},
	{
		id: 8,
		name: 'name8'
	},
	{
		id: 9,
		name: 'name9'
	}
]

const result = splitArr(arr, 2);

console.log(result);

希望本次分享的代码对你有所帮助,Thanks!!!

标签:分割,name,JavaScript,arr,name3,数组,fixed,id
From: https://www.cnblogs.com/hubianluanma/p/18179119

相关文章

  • Linux脚本——for循环和array数组
    #!/bin/shNodeName=(k8s-master-1k8s-master-2k8s-master-3k8s-node-1k8s-node-2k8s-node-3k8s-node-4k8s-node-5)ipv4=(100.190.110.55100.190.110.56100.190.110.57100.190.110.70100.190.110.71......
  • [JS] idea中javascript显示无背景色,不能点击大括号收起代码
    idea idea安装组件File->Settings->pluginsmarketplace搜索安装javascriptandtypescript插件(如果marketplace搜素搜索不到,搜索下installed里是否已经安装过了;如果已经安装过了且勾选框是选中的,去勾选插件,保存。然后重新再勾选上,保存) 效果如下: ......
  • NumPy 数组切片及数据类型介绍
    NumPy数组切片NumPy数组切片用于从数组中提取子集。它类似于Python中的列表切片,但支持多维数组。一维数组切片要从一维数组中提取子集,可以使用方括号[]并指定切片。切片由起始索引、结束索引和可选步长组成,用冒号:分隔。语法:arr[start:end:step]start:起始索引(默认......
  • JavaScript 流程控制语句详解:if语句、switch语句、while循环、for循环等
    JavaScript,作为一种广泛使用的编程语言,它的流程控制语句是构建逻辑和实现功能的基础。流程控制语句包括条件语句、循环语句和转向语句,它们是编程中不可或缺的部分。接下来,我们将一一解析这些语句,带你走进JavaScript的世界。一、什么是流程控制语句流程控制语句是用来控制程序中......
  • NumPy 数组创建方法与索引访问详解
    NumPy创建数组NumPy中的核心数据结构是ndarray,它代表多维数组。NumPy提供了多种方法来创建ndarray对象,包括:使用array()函数array()函数是最常用的方法之一,它可以将Python列表、元组甚至其他数组转换为ndarray对象。语法:ndarray=np.array(data,dtype=dtype,o......
  • 如何使用 JavaScript 获取当前页面帧率 FPS
    可以通过计算每秒 window.requestAnimationFrame 的调用频率来做为FPS值。它接收一个回调函数,该回调函数会在浏览器下一次重绘之前执行。所以只要我们循环调用并记录单位时间内的调用次数就能计算当前页面的帧率了。效果展示在线预览-使用JavaScript获取当前页面帧率FP......
  • 以数组为基础实现循环队列
    /*****************************************************************name;CirQueue_Create*function:创建循环队列*parameter;unsighedintsize*ReValue;CirQueue_t**author;小北blog*attention;*date;2024.04.26*history;*version;*Copyright(c)......
  • 在A数组中删除B数组中出现的所有字母
    数据结构笔试题:设计一程序实现功能,处理字符串A,处理规则是:只要B字符串里面有的字母,不分大小写,一律从A字符串中删掉。#include<stdio.h>#include<string.h>char*string(char*strA,constchar*strB){inth=0;intsizeA=strlen(strA);intsizeB=strlen(st......
  • JavaScript-DOM简介
    JavaScript-DOM简介之前我们说过JavaScript有三部分组成ECMAscript,BOM,DOM,之前我们都在了解JavaScript的语法即ECMAScript,今天我们开始了解DOM(文档对象模型(DocumentobjectModel),操作网页上的元素的API)什么是DOMDOM:DocumentObjectModel,文档对象模型。DOM为文档提供了结......
  • JavaScript正则表达式
    JavaScript正则表达式创建正则表达式使用构造函数var变量=newRegExp("正则表达式");//注意,参数是字符串var变量=newRegExp("正则表达式","匹配模式");//注意,两个参数都是字符串RegExp的意思是Regularexpression。使用typeof检查正则对象,会返回object。......