js进行数据移除性能比较(splice,map)

当使用 splice() 方法处理大量数据时,确实会遇到性能问题,因为它涉及到移动数组中的元素,导致操作的时间复杂度为 O(n)。对于大量数据,频繁的插入和删除可能会导致性能下降。

1、设置数组数据为10000,使用splice移除数组中的所有数据耗时,示例如下:

复制代码
let tempList = [];
for(let i = 0;i<10000;i++){
	let obj = i+1;
	tempList.push(obj),
}
/**使用splice去除元素时间*/
spliceOpt();
function spliceOpt(){
	let startTime = Date.now();
	for(let i = 0;i<10000;i++){
		let index = tempList.indexOf(i+1);
		if(index>-1){
		  tempList.splice(index,1)
		}
	}
	let endTime = Date.now();
	let useTime = endTime - startTime;
	console.log(tempList,useTime,"第一种方法使用时间")
}

2、设置数组数据为10000,使用map移除数组中的所有数据耗时,示例如下:

复制代码
let currentMap = new Map();
for(let i = 0;i<10000;i++){
	let obj = i+1;
	currentMap.set(obj,obj)
}
/**使用Map去除元素时间*/
mapOPt();
function mapOPt(){
	let startTime = Date.now();
	for(let i = 0;i<10000;i++){
		if(currentMap.has(i+1)){
			currentMap.delete(i+1);
		}
	}
	let endTime = Date.now();
	let useTime = endTime - startTime;
	console.log(currentMap,useTime,"第二种方法使用时间")
}

最终耗时结果图

相关推荐
海绵宝宝的月光宝盒3 分钟前
[STM32] 4-1 UART与串口通信
c语言·开发语言·笔记·stm32·单片机
矢志航天的阿洪3 分钟前
伪谱法求解最优控制问题(附Python代码)
开发语言·python
极客小俊34 分钟前
粘性定位Position:sticky属性是不是真的没用?
前端
十步杀一人_千里不留行36 分钟前
面向 C# 初学者的完整教程
开发语言·c#
云端看世界37 分钟前
ECMAScript 类型转换 下
前端·javascript
云端看世界39 分钟前
ECMAScript 运算符怪谈 下
前端·javascript
云端看世界40 分钟前
ECMAScript 函数对象实例化
前端·javascript
前端爆冲41 分钟前
基于vue和flex实现页面可配置组件顺序
前端·javascript·vue.js
云端看世界42 分钟前
ECMAScript 中的特异对象
前端·javascript
il44 分钟前
Deepdive into Tanstack Query - 2.1 QueryClient 基础
前端