有一个Array,有一个更新Array的函数,输入后会通过Form取.输入ID后,我想检查数组中是否已经存在该ID
输入为1,应该为true。
控制台显示false
const bioData = [
{id:1}
]
const [myArray, setmyArray] = useState(bioData);
const [sid, setId] = useState("");
const handleID = (e) => {
setId(e.target.value);
}
const updateArray = () =>{
const isFound = myArray.some(el => el.id === sid);
console.log(isFound);
if (isFound) {
console.log('✅ array contains object with id = 1');
}
}
<input type="number" placeholder='Please enter your ID' className='inputelm' onChange={handleID} />
<button className='addbtn btn inputelm' onClick={updateArray}>Add</button>
2条答案
按热度按时间bnlyeluc1#
之所以显示false,是因为
bioData[0].id
是一个数字,但从input_id.value
得到的是一个字符串。输入元素总是返回一个字符串,即使是type="number"
。type属性只是为了方便输入,它不会以任何方式解析数据。从input获取值时使用parseInt()
,或者更改Initial_data以包含字符串形式的id。91zkwejq2#
为此,您应该编写给定的代码
而不是
因为mongodb有as _id元素的id。