【发布时间】:2021-08-14 13:40:12
【问题描述】:
我正在尝试更新数组的特定对象值。所以我的做法是删除旧对象,并在同一个索引中插入更新值。
let thisTodoIndex = oldTodos.findIndex((t) => t.id === getTodoId);
let thisTodo = oldTodos[thisTodoIndex];
thisTodo = { ...thisTodo, isCompleted: !getStatus };
let updatedTodo = oldTodos.filter(td => td.id !== getTodoId);
console.log(updatedTodo); // working fine
console.log(thisTodo); // working fine
console.log(thisTodoIndex); //working fine
updatedTodo = updatedTodo.splice(thisTodoIndex,0,thisTodo); // becoming empty
console.log(updatedTodo);
参考阵列的图像:
【问题讨论】:
-
.splice()方法返回一个包含已删除元素的数组,因为您的删除计数为0,您将得到一个空数组。相反,splice()修改了updatedTodo,而不是返回一个新修改的数组。
标签: javascript arrays