以下は私の作業コードの例ですが、問題は私が100kを超えるレコードがあるときです。このスクリプトは実行に非常に時間がかかっています。オブジェクトの2つの配列を比較し、2つ目のオブジェクトの値を更新します。非常に遅い
注:私はオブジェクトの2つの配列を持っており、最初のものに基づいて2番目の配列のオブジェクト名を設定する必要があります。 IDは2つの間で一致し、順序はランダムになります。
const _ = require('lodash');
let res1 = [
{id:1, name:'Sandra'},
{id:2, name:'Bill'},
{id:3, name:'Peter'},
{id:4, name:'Jill'}
];
let res2 = [
{id:2, name:'John'},
{id:4, name:'Bobby'}
];
_.forEach(res1, function(data1) {
_.forEach(res2, function(data2) {
if (data1.id === data2.id) {
data2.name = data1.name;
}
});
});
// res2 = [{id:2, name:'bill'},{id:4, name:'Jill'}];
迅速かつ小さな改善、あなたの戦略は、より良いそして、M×N個のループを使用する場合forループを使用して操作。 –