【问题标题】:How to compare two different arrays without methods? [closed]如何在没有方法的情况下比较两个不同的数组? [关闭]
【发布时间】:2016-11-05 05:57:36
【问题描述】:

我正在尝试完成 freecodecamp 任务。有任务: 比较两个数组并返回一个新数组,其中包含仅在两个给定数组之一中找到的任何项目,但不能同时在两个给定数组中找到。也就是说,返回两个数组的对称差。

我知道如何使用Array.prototype.slice()Array.prototype.filter()Array.prototype.indexOf()Array.prototype.concat() 和其他方法修复它。但我想完全不用方法。

【问题讨论】:

标签: javascript arrays compare


【解决方案1】:

我将如何实现它:

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)
}

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

【讨论】:

  • 我认为他不关心这个,只关心比较方法。不过我删除了它。
  • 谢谢。有用。试图让它更短、更优化。
  • 很高兴我能帮上忙。如果它适合您,您能否将其标记为答案?这对我也有一点帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-13
  • 1970-01-01
相关资源
最近更新 更多