簡體   English   中英

如何只刪除一次數組元素以使用 for 循環添加新元素

[英]How can I delete array elements just once to add new ones with a for loop

我想做的是:

  1. 將數組值(列表)設置為另一個數組(選項)。
  2. 如果用戶的輸入 (searchVal) 與列表值匹配,它將刪除選項,推送此匹配項,然后繼續推送下一個匹配項而不再次刪除選項。

所以根據下面的代碼,如果 searchVal 是"whatever" ,選項應該返回: ["whatever", "whatevEver1"]但是,相反,它返回: ["whatever", "WhatEver1", "whatttever", "whatever", "whatevEver1"]

相關代碼:

var list = ["whatever", "WhatEver1", "whatttever"];
var clear = 0;
var options = [];
    
    
for (var i=0 ; i < list.length ; i++)
{
    options.push([list[i]]);
}
    
var searchVal = window.prompt(" ");
     
for (var i=0 ; i < list.length ; i++)
{
    if (list[i].toLowerCase().includes(searchVal.toLowerCase())) {
        if (clear == 0) {
            options.length = 0; 
        }
        options.push([list[i]]);
    }
    clear++;
}

return options;

Js arrays 是通過引用傳遞的。 為了制作數組的獨立副本,您需要使用:

let options = JSON.parse(JSON.stringify(list));

我沒有嘗試對您的問題實施此操作,因為我太懶了,但我認為它可能會起作用。

暫無
暫無

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

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