我在状态中有两个数组,并且都有ID。
arrOne = [2,6,8]
arrTwo = [3, 8, 4]
如果某个数组具有相同的值(在这种情况下为8),我想禁用所有具有该相等值的按钮。
我尝试过这种方法,但我没有得到它
button = () => {
const checkId = this.state.arrOne.filter(arr => arr.includes(this.state.arrTwo.map(data => data.id))
if(checkedId){
return <Button disable />
}
return <Button />
}
render(){
this.button()
}
我有所有数组的按钮,如果数组一等于数组二,我想禁用这个等于的特定按钮 有什么想法吗?
感谢您的帮助
答案 0 :(得分:1)
这应该有帮助。
const isDisabled = this.state.arrOne.some(item => this.state.arrTwo.includes(item));
return <Button disabled={isDisabled} />;
答案 1 :(得分:0)
找到数组的交集并进行逻辑
var setOne = [2,6,8];
var setTwo = [3, 8, 4]
var hasDuplicateValues = [...new Set(setOne)].filter(item => setTwo.includes(item));
if(hasDuplicateValues.length > 0) {
// Disable button
}
else {
// Enable button
}