Javascript 通过findIndex方法比较“id”

Javascript 通过findIndex方法比较“id”,javascript,arrays,reactjs,object,ecmascript-6,Javascript,Arrays,Reactjs,Object,Ecmascript 6,如果在数组中找不到TODO对象的TODO。将todo添加到TODOS数组。如果找到,不要添加到板上。 比较表是否要与给定索引进行todo。向我返回-1,或false。我做条件如果!findObject{}应该将对象添加到数组中,而不是添加它 代码如下: 如果找不到项,findIndex将返回-1,不幸的是,这不是falsy值-唯一的falsy数字值是0。所有其他的——包括-1——都是真实的 控制台。日志-1; 如果找不到项,findIndex将返回-1,不幸的是,这不是falsy值-唯一的fa

如果在数组中找不到TODO对象的TODO。将todo添加到TODOS数组。如果找到,不要添加到板上。 比较表是否要与给定索引进行todo。向我返回-1,或false。我做条件如果!findObject{}应该将对象添加到数组中,而不是添加它

代码如下:

如果找不到项,findIndex将返回-1,不幸的是,这不是falsy值-唯一的falsy数字值是0。所有其他的——包括-1——都是真实的

控制台。日志-1; 如果找不到项,findIndex将返回-1,不幸的是,这不是falsy值-唯一的falsy数字值是0。所有其他的——包括-1——都是真实的


控制台。日志-1; 杰克·巴什福德答案的另一种选择是使用.find而不是.findIndex。 .find如果在todo数组中找不到todo,并且undefined是falsy值,则返回undefined

Array.prototype.find-


工作示例:

杰克·巴什福德答案的另一种选择是使用.find而不是.findIndex。 .find如果在todo数组中找不到todo,并且undefined是falsy值,则返回undefined

Array.prototype.find-

工作示例:

您还可以使用filter方法筛选出匹配的id。您可以执行以下操作:

let findObject = todos.filter(x => x.id === todo.id);
console.log(findObject);

if (!findObject.includes(todo.id)) {  
  let newArray = [...todos];
  newArray.push(todo);
  console.log(newArray);
}
您可以从这里了解有关筛选方法的更多信息:[

希望这有帮助您也可以使用筛选方法筛选出匹配的id。您可以执行以下操作:

let findObject = todos.filter(x => x.id === todo.id);
console.log(findObject);

if (!findObject.includes(todo.id)) {  
  let newArray = [...todos];
  newArray.push(todo);
  console.log(newArray);
}
您可以从这里了解有关筛选方法的更多信息:[

希望这有帮助
let findObject = todos.filter(x => x.id === todo.id);
console.log(findObject);

if (!findObject.includes(todo.id)) {  
  let newArray = [...todos];
  newArray.push(todo);
  console.log(newArray);
}