我有一个2d数组表示数据库中的行。我使用officeJS来加载和处理Excel中的数据。我更新,插入和删除行。我面临的挑战是我需要找出更改的行(插入,删除或更新),以便只更新数据库中的那些行。我发送一个查询更新和插入的行,以及一个查询删除的行。我可以用lodash做5000行10列的数据。我想将其扩展到更大的数据集,我想知道是否有任何替代我目前正在做的。以下是我用来找出差异的代码。大数据集Lodash二维数组比较
insertedOrUpdatedRows = _.differenceWith(modifiedData, originalData, _.isEqual);
deletedRows = _.differenceWith(originalData, modifiedData, compareFunction);
function compareFunction(a, b) {
if(a[0] == b[0]) {
return true;
}
else
return false;
}
样本数据阵列
[[1,数据,数据,数据], [2,数据,数据,数据]]
的第一个元素是主键。
这似乎是一个相当不错的方法。 – nikjohn
对于大于5000行和10列的较大数据集,它的失败。有什么办法可以处理更多的数据。也许可以将数据分成大块? –
失败,因为lodash正在崩溃。 –