簡體   English   中英

JavaScript splice() 不起作用

[英]JavaScript splice() not working

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()。

切換這兩行:

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--;
const indexOfValue = treeSelectDataTemp.findIndex((item: any) => item.value === deleteIndexId[d]);

 console.log("  ###########  deleted indexOfValue ", indexOfValue);
 if (indexOfValue !== -1) {
    treeSelectDataTemp.splice(indexOfValue, 1);
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM