簡體   English   中英

使用for循環拼接數組的正確方法是什么,嵌套了if條件

[英]what is the correct way to splice an array using for loop, having nested if conditions

我正面臨拼接數組的問題。我檢查了我能找到的所有示例,但都在脈絡中。 麻煩是這些嵌套的 if 條件在 for 循環中。我正在做我 - 但無法提前 go。 誰能幫我解釋一下方法。我正在添加一個片段。 問題是,每當我不執行 i-- 操作並拼接數組時,就會交替刪除元素,但是在添加 i-- 時,我無法繼續進行。 我試過--i,但現在我對自己做錯了什么感到困惑。 這里 m 是一個從 1 到 20 的數字數組。 長度為 20。

        var k=13;
        for (var i = 0; i < m.length; i++) {
            if (m[i] < k) {
                if (i != 0 && i != m.length) {
                    m.splice(i, 1);
                }
                if (i == 0) {
                    m.splice(i, 1);
                }
                i--;
            }
        }

據我所知,您想過filter所有小於 13 的元素。您可以通過在 javascript 中使用filter()來做同樣的事情

const filterLimit = 13;

// Here filteredList is the list of all elements lesser than filterLimit
const filteredList = m.filter(item => item >= filterLimit);

例子:

 const filterLimit = 13; const unFilteredList = [1, 13, 14, 2, 5, 33]; const filteredList = unFilteredList.filter(item => item >= filterLimit); console.log(filteredList);

這種方法有一個錯誤,那就是你不能在循環內更改循環的參數(i)

您可以改用while

var k=13;
var i=0;
while (i < m.length){
    if(m[i] < k){
        m.splice(i, 1);
    }else{
        i++;
    }
}

暫無
暫無

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

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