如何在React中删除对象数组中的多个项目?

戴维·约翰斯

我有一个带有对象数组的React应用程序。我首先使用一种方法,获取对象ID列表,然后通过将它们与ID列表进行比较来删除数组中的元素。问题是,函数产生错误的输出。

这是功能

var questionsToRemove = [3,5,6,7];

state.questionsData = [
    { order: 1, question: "q1" },
    { order: 2, question: "q2" },
    { order: 3, question: "q3" },
    { order: 4, question: "q4" },
    { order: 5, question: "q5" },
    { order: 6, question: "q6" },
    { order: 7, question: "q7" },
];

removeQuestion = () => {
    var questionssData = this.state.questionsData
    questionssData.forEach(each => {
        if (questionsToRemove.includes(each.order)) {
            questionssData.splice(questionssData.indexOf(each))
        }
    });
    this.setState({ questionsData: questionssData })
}

上面的方法产生错误的输出为

    { order: 1, question: "q1" },
    { order: 2, question: "q2" },
    { order: 4, question: "q4" },
    { order: 6, question: "q6" },

我尝试了ES6过滤器方法,如下所示

removeQuestion = () => {
    var questionssData = this.state.questionsData
    questionssData.filter(each => {
        return questionsToRemove.includes(each.order)
    });
    this.setState({ questionsData: questionssData })
}

但这会产生相同的原始数组,而不过滤任何内容。如何从阵列中删除选定的对象?

达里奥·菲奥雷(Dario Fiore)

.filterArray方法不会使数组发生变异,它会创建一个具有过滤值的新数组。只需将filter的结果分配给即可questionssData

 questionssData = questionssData.filter(each => {
      return !questionsToRemove.includes(each.order)
 });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从 TypeScript 中的 JSON 对象数组中删除多个项目

如何在React中从数组中删除对象

如何在React中从状态数组添加或删除项目

AngularFire如何从数组中删除多个项目?

如何从对象数组中删除项目?

尝试从 React 中的对象数组中删除项目

如何在 React 中删除项目?

如何删除(删除)对象数组中的特定项目

如何通过在Javascript中循环从数组中删除多个项目

如何删除数组对象中数组内部的项目?javascript

从对象内的数组中删除项目(redux/typescript/react)

从数组React中删除项目?

如何从包含多个数组的对象中删除数组

如何删除JSONB数组Postgresql数组对象中的多个值

如何在嵌套数组对象中删除和添加项目

如何在角度更改时从数组中删除或删除项目

如何在数组中循环多个对象以收集特定项目?

如何在React中渲染对象数组?

如何在React中映射对象数组

如何在React中过滤对象数组

如何在 React 中过滤对象数组

如何从React Typescript中的通用数组中删除项目?

我如何在React中更新/删除this.state数组中的对象

如何从快速数组中删除多个项目?

IBM Watson Assistant,如何从数组中删除多个项目?

如何在 React 中异步更新同一数组中的多个对象?

如何在react js中按顺序计算嵌套数组中的多个对象

如何在REACT js中正确地从JSON对象中删除特定项目?

如何使用ng-click从数组中删除项目或对象?