【发布时间】:2019-09-23 16:16:11
【问题描述】:
我想确保我不能将重复值推送到 React 状态的数组中。重复的值仍在数组中。
我尝试过使用.includes,但它不起作用。
const categoryCheck = (category) => {
let categories = [...this.state.categories]
if (this.state.categories === undefined) {
return
}
console.log(categories, category)
console.log(!categories.includes(category))
if (!categories.includes(category) === false) {
categories.push(category)
console.log('new category', categories)
}
}
输入:'cat'
预期结果:['cat']
实际结果:['cat', 'cat']
更新: 这是我的功能,这就是我的称呼。感谢大家的帮助!
uniqueCategories = category => {
//makes sure that there are no duplicate categories in array
if (category === undefined) {
return;
}
let categories = new Set(category);
categories = Array.from(categories);
console.log(categories);
return categories;
};
我在另一个函数中这样调用它:
this.setState({
categories: this.uniqueCategories([
...this.state.categories,
categoryInput
])
【问题讨论】:
-
您可以使用字典作为stackoverflow.com/questions/1208222,或者删除重复值作为stackoverflow.com/questions/9229645
标签: javascript arrays reactjs