js数组删除元素问题

本人学识渊博、经验丰富,代码风骚、效率恐怖,

c/c++、java、php无不精通,熟练掌握各种框架,

深山苦练20余年,一天只睡4小时,电话通知出bug后秒登vpn,千里之外定位问题,瞬息之间修复上线。

身体强壮、健步如飞,可连续编程100小时不休息,讨论技术方案5小时不喝水,

上至带项目、出方案,下至盗账号、威胁pm,什么都能干。

泡面矿泉水已备好,学校不支持编程已辍学,家人不支持编程已断绝关系,老婆不支持编程已离婚,小孩不支持编程已送孤儿院,备用电源百兆光纤永不断电断网,门口已埋雷无人打扰

以上摘自网络纯属娱乐吐舌头

在js中需要删除数组中符合指定要求的元素,代码如下,发现结果不对

var arr = [1, 2, 3, 4, 5, 6, 7, 8 ,9, 10];
		for(var i = 0; i < arr.length; i++){
			if(arr[i] > 5){
				arr.splice(i, 1);
			}
		}
		console.log(arr);


于是在群里请教大神,各种说法,各种尝试,没有一个给出正确答案,几小时后,真正的大神出来说出了原因,删除数组会改变数组的长度,导致for循环条件判断错误,倒过来从最后面删,就不会有影响了于是代码稍微改动一点就行

var arr = [1, 2, 3, 4, 5, 6, 7, 8 ,9, 10];
		for(var i = arr.length - 1; i >= 0; i--){
			if(arr[i] > 5){
				arr.splice(i, 1);
			}
		}
		console.log(arr);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值