如何比较没有方法的两个不同的数组?

时间:2016-07-03 10:05:02

标签: javascript arrays compare

我正在尝试完成freecodecamp任务。有任务: 比较两个数组并返回一个新数组,其中只有在两个给定数组中的一个中找到的任何项,但不能同时返回两个数组。换句话说,返回两个数组的对称差异。

我知道如何使用Array.prototype.slice()Array.prototype.filter()Array.prototype.indexOf()Array.prototype.concat()和其他方法解决此问题。但我想在没有方法的情况下这样做。

1 个答案:

答案 0 :(得分:-2)

这是我如何实现它:

window.onload=function(){
var array1 = [1, 2, 3, 4, 5, 6]
var array2 = [3, 4, 5, 6, 7, 8]
var result = []
var resultCount=0;
for (var i1 = 0; i1 < array1.length; i1++) {
    var comparedElement = array1[i1];
    var isUnique = true;
    for (var i2 = 0; i2 < array2.length; i2++) {
        if (comparedElement == array2[i2]) {
            isUnique = false;
            break;
        }
    }
    if (isUnique) {
        result[resultCount]=comparedElement;resultCount++;
    }
}


for (var i2 = 0; i2 < array2.length; i2++) {
    var comparedElement = array2[i2];
    var isUnique = true;
    for (var i1 = 0; i1 < array1.length; i1++) {
        if (comparedElement == array1[i1]) {
            isUnique = false;
            break;
        }
    }
    if (isUnique) {
        result[resultCount]=comparedElement;resultCount++;
    }
}
    
console.log(result)
}

代码试图找到另一个数组中数组中的每个元素,如果找不到它,它会将它添加到结果数组中,如果没有,它就会跳过它。这可能不是解决这个问题的最有效方法。