Javascript 使用拼接从阵列中删除元素
我应该有一个 我将通过它循环并将pic.id推送到文件数组中Javascript 使用拼接从阵列中删除元素,javascript,Javascript,我应该有一个 我将通过它循环并将pic.id推送到文件数组中 files = [] response.data[0].pics.forEach(function(pic, i){ let div = makeButtons(response.data[0].pics, files, imgPrevEdit); files.push(pic.id); }); 所以推后的文件数组会变成这样 make按钮功能用于使用拼接功能删除阵列上的特定元素 makeButtons:
files = []
response.data[0].pics.forEach(function(pic, i){
let div = makeButtons(response.data[0].pics, files, imgPrevEdit);
files.push(pic.id);
});
所以推后的文件数组会变成这样
make按钮功能用于使用拼接功能删除阵列上的特定元素
makeButtons: function(file, store, elem) {
let button = document.createElement("button");
button.classList.add('position-absolute','x', 'rounded-circle');
button.type = "button";
button.innerHTML= "x";
button.addEventListener('click', () => {
elem.removeChild(div);
store.splice(store.indexOf(file), 1);
});
let div = document.createElement("div");
div.classList.add('col', 'mt-2');
div.appendChild(button);
return div;
},
但是,当我单击按钮时,它总是从文件数组的末尾开始,它找不到特定的键并将其删除
你知道我该怎么解决吗
它总是从文件数组的末尾开始
files = []
response.data[0].pics.forEach(function(pic, i){
let div = makeButtons(response.data[0].pics, files, imgPrevEdit);
files.push(pic.id);
});
我认为这是因为store.indexOf(file)
返回-1
。在这种情况下
将从数组的末尾开始多个元素(带原点)
-1,表示-n是最后第n个元素的索引,因此相当于数组的索引。长度-n)
为什么store.indexOf(file)
返回-1
?因为您将response.data[0].pics作为file
参数传递,但实际上您将pic.id
推送到文件中,并将其作为store
传递:
let div = makeButtons(response.data[0].pics, files, imgPrevEdit);
files.push(pic.id);
我应该传递什么作为文件参数?感应电动机confused@Beginner尝试传递pic.id