isRepeat()
function isRepeat() {
var $array = [0, 0, 0, 0, 0, 0, 0, 1]
console.log($array.length)
for (i = 0; i < $array.length; i++) {
if ($array[i] > 0) {
console.log($array)
} else {
$array.splice(0, 1)
console.log($array)
console.log($array.length)
}
}
}
为什么数组length变4后就不动了啊?我想去下前面没用的0比如0000000001,000000002,最后只剩下有效数字!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
因为你的$array.length一直在变啊
循环到第四次的时候,i 等于 4 ,$array.length 也是 4 呢
然后如果只是要达到说000001变成1的话,直接转换下数据类型就好啦
并不需要js函数处理
for (i = 0; i < $array.length; i++) {//这里的 i < $array.length是每一次重新取值的
所以i等于4的时候,$aray的长度也是4了,就不符合条件了;
推荐使用
isRepeat()
你可以这样写
数组的长度是动态变化的,也就是说当i=4的时候,$array已经删除了前4个0,只剩下了4个数,这个时候$array.length是等于4的,so循环不满足条件无法进行。
至于你想实现的功能就非常简单了,可以在函数内声明一个空数组,然后存储$array中不等于0的数字,不用删除0,这样length就不会发生变化,最后return就行了;
其次还是按照你上面的思路,不用for循环,用$.each进行遍历,把等于0的都删掉,就只剩下了非0的数字;
思路还是比较多的,自己试试吧。