如何不在 React 状态数组中包含重复值,如何防止数组中的值重复?

How do I not include duplicate values in a React state array , how to prevent duplication of values in array?

我想在 items[0].question state

中存储 15 个不同的问题

我想确保在 React 状态下无法将重复值推送到数组中。尽管重复的值仍在数组中。

我试过使用 .includes 但它不起作用。

const [exam, setExam] = useState({
    subjectName: "",
    questions: [

    ], notes: [
        ""
    ]
})

const [item, setItem] = useState([
    {
        question: "",
        answer: "",
        options: []
    }
])

const nextQuestion = (e) => {
    e.preventDefault()
    const que = item[0].question

    exam?.questions?.push({ question: que, answer: value, options: [item[0].options[1], item[0].options[2], item[0].options[3], item[0].options[4]] })

}

因为您正在使用setState,所以您将需要使用setExam来更新exam

类似于:

const newQuestion = { question: que, answer: value, options: [item[0].options[1], item[0].options[2], item[0].options[3], item[0].options[4]] }
newExams = {...exam, questions: [...exam.questions, newQuestion ]}
setExam(newExams)