我有兩個陣列,比較兩個陣列,並找到差值
var original = [10,80,30,100,160];
var edited = [80,120,140,70,160,30];
從上方,
我需要比較,並得到其中所有元素存在於數組「編輯」,但不存在於「原版的」。
此外,
需要得到其存在於「原始」而不是在「編輯」的元素。
所以輸出應該如下,
Added Elements 120,140,70
Deleted Elements 10,100
,我寫了如下所示,你可以看到我爲循環寫了兩碼,
var fn100 = function(){
var original = [10,80,30,100,160];
var edited = [80,120,140,70,160,30];
var newlyAdded = [];
var dropped = [];
var isFound = false;
var x = 0, y = 0;
//for added
for(x = 0; x < edited.length; x++){
isFound = false;
for(y = 0; y < original.length; y++){
if(edited[x] === original[y]){
isFound = true;
break;
}
}
if(isFound === false){
newlyAdded.push(edited[x]);
}
}//for added
//for dropped
for(x = 0; x < original.length; x++){
isFound = false;
for(y = 0; y < edited.length; y++){
if(original[x] === edited[y]){
isFound = true;
break;
}
}
if(isFound === false){
dropped.push(original[x]);
}
}// for dropped
print("Added Elements "+newlyAdded);
print("Deleted Elements "+dropped);
}
fn100();
從上面的代碼,即對添加和丟棄。
有沒有更好的邏輯來做到這一點?
請給我建議。
我真的不認爲這個問題是重複的。他並沒有問如何做差異,代碼是在問題中。他在問如何更有效地做兩種差異。 –