for(var i = 0; i < this.phrases.length; i++) {
console.log('sort ' + this.phrases[i]);
console.log('sort length' + this.phrases.length);
if(this.phrases[i] == null) {
var s = this.phrases.splice(i, 1);
console.log('splice ' + this.phrases[i]);
console.log('splice length ' + this.phrases.length);
}
}
我有一个数组(this.phrases
)。我在另一部分中创建了我要删除的短语等于null。第一个日志打印null
,第二个日志也打印null
。为什么没有拼接?这有时也是数组中的最后一项。你不能只用一个元素拼接一个数组吗?如果它不是this.phrases
中的最后一项,则会发生同样的事情。
修改: s
似乎也未设置为任何值。
编辑:我添加的两个长度日志打印相同的数字。
编辑:事实并非如此。奇怪的事情正在发生,可能不涉及这部分代码。我只是想知道我是否正确使用splice()。
答案 0 :(得分:1)
切换这两行:
var s = this.phrases.splice(i,1);
console.log('splice ' + this.phrases[i]);
对此:
console.log('splice ' + this.phrases[i]);
this.phrases.splice(i, 1);
i--;
答案 1 :(得分:0)
const indexOfValue = treeSelectDataTemp.findIndex((item: any) => item.value === deleteIndexId[d]);
console.log(" ########### deleted indexOfValue ", indexOfValue);
if (indexOfValue !== -1) {
treeSelectDataTemp.splice(indexOfValue, 1);
}