繁体   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