İki veya daha fazla dizinin simetrik farkını içeren bir dizi bulmaya çalışırken bu codepen http://codepen.io/PiotrBerebecki/pen/ZWxvzm'u oluşturdum.Simetrik fark işlevimi biraz değiştirerek, bilinmeyen sayıda argümanı kabul etmesi mümkün mü?
İşlevim tamam çalışıyor, ancak yalnızca dört argüman geçilirse. İşlevimi, bilinmeyen sayıda bağımsız değişken kabul edebilecek şekilde nasıl değiştirebilirim? Belki de bir for
döngüsünün veya reduce
/reduce
/ yöntemlerinin bir parçası olabilecek potansiyel olarak tekrarlanabilir bir kod bloğu vardır. Bunu nasıl başaracağımı anlayamıyorum. @Bergi ile ipuçları
symmetricDifference([1,2,3,4], [3,4,5,6], [2,4,6,7], [8,9])
// should return an array containing [1,4,5,7,8,9]
symmetricDifference([1,2,3,4], [3,4,5,6])
// should return an array containing [1,2,5,6]
var arrA = [1,2,3,4];
var arrB = [3,4,5,6];
var arrC = [2,4,6,7];
var arrD = [8,9];
function symmetricDifference(arr) {
let args = Array.prototype.slice.call(arguments);
let result = [];
result = args[0].concat(args[1]).filter(function(item) {
return args[0].indexOf(item) === -1 || args[1].indexOf(item) === -1;
});
result = result.concat(args[2]).filter(function(item) {
return result.indexOf(item) === -1 || args[2].indexOf(item) === -1;
});
result = result.concat(args[3]).filter(function(item) {
return result.indexOf(item) === -1 || args[3].indexOf(item) === -1;
});
return result;
}
Evet, 'ar'' üzerinde basit bir' for' döngü kullanın. Başarısız olsaydın lütfen bize teşebbüsünü göster. – Bergi
İpucu: 'var result = args [0] ile başlayın;' – Bergi
Her zaman dört kişilik gruplar halinde mi? Argümanlarınızı dört kişilik gruplar halinde gruplandırın, ardından bu grupları döngüleyin, örneğinizdeki gruptaki dört öğenin her birini seçin. – ste2425