错误代码
console.log(this.query.length);
for (let i = 1; i < this.query.length; i++) {
console.log('out', i);
console.log(this.query[i]);
if (!this.query[i].trim()) {
console.log('int', i);
this.query.splice(index, 1);
}
}
现象没次删除最后几个没删调
查处原因是因为每次this.query.length都会变化减小,但是i的没次都会增加,等到删到一半的时候,i的值已经增加到和length一样的长度了,导致不会在循环,前面的值就没有删掉了。
想要的效果是循环遍历数组把空的删掉
正确代码
倒序增加
console.log(this.query.length);
for (let i = this.query.length - 1; i > 0; i--) {
console.log('out', i);
console.log(this.query[i]);
if (!this.query[i].trim()) {
console.log('int', i);
this.query.splice(index, 1);
}
}
每次删除下标减一
for (let i = 1; i < this.query.length; i++) {
console.log('out', i);
console.log(this.query[i]);
if (!this.query[i].trim()) {
console.log('int', i);
this.query.splice(index, 1);
i--;
}
}