J'ai un tableau 2d représentant des lignes dans une base de données. J'utilise officeJS pour charger et manipuler les données dans Excel. Je mets à jour, insère et supprime des lignes. Le défi auquel je suis confronté est que j'ai besoin de comprendre les lignes modifiées (insérées, supprimées ou mises à jour) afin que je puisse mettre à jour seulement ces lignes dans la base de données. J'envoie une requête pour les lignes mises à jour et insérées et une requête pour les lignes supprimées. Je suis capable de le faire en utilisant lodash pour les données avec 5000 lignes et 10 colonnes. Je voudrais adapter cela à un ensemble de données beaucoup plus grand et je me demande s'il y a des alternatives à ce que je fais actuellement. Voici le code que j'utilise pour trouver la différence.Comparaison de tableaux Lodash 2d pour les grands ensembles de données
insertedOrUpdatedRows = _.differenceWith(modifiedData, originalData, _.isEqual);
deletedRows = _.differenceWith(originalData, modifiedData, compareFunction);
function compareFunction(a, b) {
if(a[0] == b[0]) {
return true;
}
else
return false;
}
tableau de données d'échantillon
[[1, données, données, données], [2, des données, des données, des données]]
Le premier élément est la clé primaire.
Cela semble être une méthode assez décente. – nikjohn
Oui, il échoue pour un jeu de données plus volumineux que 5000 lignes et 10 colonnes. Y a-t-il un moyen de traiter plus de données? Peut-être plonger les données dans des morceaux? –
échoue car dans lodash plante. –