如何不在 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)
我想在 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)