我需要从数组中删除一个元素,并只返回其余的元素。
我尝试使用splice
和filter
,但无法使其工作。
对于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;
}
6条答案
按热度按时间tktrz96b1#
在你的场景中,你可以使用
filter
来过滤你不想在结果数组中出现的索引,你传入过滤器的回调函数的第一个参数是当前元素ele
,第二个参数是当前元素idx
的索引:这里,假设我想移除第三个索引处的元素,所以我会比较过滤函数回调中的当前索引和我想移除的元素的索引,这将产生一个新数组,其中包含原始数组的所有元素,但不包含我想移除其索引的元素。
通过
splice
也可以得到同样的结果。以下是演示:
uxhixvfz2#
Array#splice
就是你要找的。问题是,splice没有返回新数组,它从数组中移除元素并返回被删除的元素。然而,在原始数组中,除了被移除的元素外,你将拥有相同的元素。如果你不想修改原始数组,你可以使用filter:
flmtquvp3#
"希望这能有所帮助"
hjzp0vay4#
嘿,我遇到了一个简单的解决方案,没有使用splice()使用解构。
ymzxtsji5#
w8rqjzmb6#
所有你需要的是知道如何使用拼接。希望下面的回答你的问题。