如果javascript中的对象数组中存在对象值,则显示已存在消息



如果用户在输入字段中键入name并检查该值是否与对象数组中的对象值相同,我希望显示警告消息。

我正在使用ReactJS。这是我的假状态:

const [persons, setPersons] = useState([
{ name: "Steve" },
{ name: "Tim" },
{ name: "Dan" },]); 
const [newName, setNewName] = useState(""); //this state is for input value.

提交表单为:

const handleSubmit = (e) => {
e.preventDefault();
const newPerson = {
name: newName,
};
setPersons(persons.concat(newPerson));
setNewName("");

如果我理解正确,在提交时,你想看看新名称是否已经被采用?你可以使用.some来查看该对象是否已经存在

const handleSubmit = (e) => {
e.preventDefault();
// will return true once it finds a matching entry, otherwise will return false
const exists = persons.some(person => person.name === newName);
if (exists) {
// code to show alert, probably something like `setError(true)`
} else {
const newPerson = { name: newName };
// probably want to clear the error, like `setError(false)`
setPersons(persons.concat(newPerson));
setNewName("");
}
}

最新更新