jQuery更新对象在数组时发现?



我有一个对象数组。我有这段代码在数组中找到一个对象。我的问题是,当对象被发现,我如何更新它?

$(document).on("change", "input[name=ActualFinish]", function () {
var job = $(this).parent().parent().find('input[name=Job_No]').val();
var actualFinish = $(this).parent().parent().find('input[name=ActualFinish]').val();
var task = $(this).parent().parent().find('input[name=LibrayTaskID]').val();
if (updatingData.find(x => x.Job == job && x.TaskID == task)) {
console.log("found. How do I update Date1?");
}
else {
updatingData.push({ Job: job, TaskID: task, Date1: actualFinish });
}
console.log(updatingData);
});

我认为没有必要更新任何东西,如果你找到匹配属性的记录。

然而,如果你想更新现有的记录,你可以使用findIndex方法找到匹配记录的索引,然后更新该索引处的对象值,如下所示:

...
var matched_index = updatingData.findIndex(x => x.Job == job && x.TaskID);
//findIndex method returns index on matching and -1 if not match.
if ( matched_index !== -1)) {
// Update record here with matched_index
updatingData[matched_index].job = // whatever
updatingData[matched_index].actualFinish = // whatever
updatingData[matched_index].task = // whatever
console.log("Record is updated");
}
else {
updatingData.push({ Job: job, TaskID: task, Date1: actualFinish });
}
...

最新更新