gpt4 book ai didi

javascript - 从数组中删除元素并仅返回剩余元素

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:09:06 26 4
gpt4 key购买 nike

我需要从数组中删除一个元素并只返回剩余的元素。

我尝试使用 splicefilter 但无法正常工作。

使用 splice 它只返回被删除的元素,我需要相反的东西。

var parse_obj = JSON.parse(document.getElementById('imagens').value);
function rImagem(data){
data = data - 1;
document.getElementsByClassName("btn_remover")[data].style.display = 'none';
parse_obj2 = parse_obj.splice(parse_obj.findIndex(e => e.data,1));
new_string = JSON.stringify(parse_obj2);
document.getElementById('imagens').value = new_string;
}

最佳答案

在您的场景中,您可以使用 filter过滤结果数组中不需要的索引。您在过滤器中传递的回调的第一个参数是当前元素ele,第二个是当前元素的索引idx:

parse_obj2 = parse_obj.filter((ele, idx) => idx !== parse_obj.findIndex(e => e.data,1));

在这里,假设我想删除第三个索引处的元素,因此我会将过滤器函数回调中的当前索引与我要删除的元素的索引进行比较。它将生成一个新数组,其中包含原始数组的所有元素,但不包含我要删除其索引的元素。

var indexToRemove = 2; 
var arr = [1, 2, 3, 4, 5];
var result = arr.filter((data, idx) => idx !== indexToRemove );
console.log(result);

同样的结果也可以通过splice得到。

parse_obj.splice(parse_obj.findIndex(e => e.data,1), 1); //parse_obj is one element less.

这是演示:

var indexToRemove = 2; 
var arr = [1, 2, 3, 4, 5];
arr.splice(indexToRemove, 1); //removes only the third element and modifies the original array in place.
console.log(arr);

关于javascript - 从数组中删除元素并仅返回剩余元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54345346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com