Javascript 使用拼接从阵列中删除元素

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:

我应该有一个

我将通过它循环并将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: 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