js 两个数组比较两组或两组以上的重复数据

JavaScript019

js 两个数组比较两组或两组以上的重复数据,第1张

你这个代码不是 JS 啊,看起来倒有些像 Golang。。。

你没有说明你这个比较的目的,因此如果没有别的要求,那么下面是 JS 的代码:

/**

 * 比较两个数组的重复部分

 * @param {Array.<number>} arr1 数组1

 * @param {Array.<number>} arr2 数组2

 * @return {Array.<number>} 返回一个数组,元素 2*n 是匹配开始的位置,元素 2*n+2是匹配终止的地方

 */

function hutiaCompare(arr1, arr2){

    /** @type {number} */

    var len = Math.min(arr1.length, arr2.length)

    /** @type {Array.<number>} */

    var re = []

    

    for (var i=0 i<len i++){

        // 为了便于你理解,我把下面两个条件分开写了

        // 按我习惯一般会写在一起

        // 条件1:如果匹配,且没有记录过匹配起始位置

        if (arr1[i] == arr2[i] && re.length%2===0) {

            re.push(i)

        // 条件2:如果不匹配,且已经记录过匹配起始位置了

        } else if (arr1[i] != arr2[i] && re.length%2===1){

            re.push(i)

        }

    }

    if (re.length %2 === 1) re.push(i)

    

    return re

}

以上,请采纳,请给分。

有一说一这种方式是百度到的最常见的,而且的最方便的,但是依旧会存留问题

1.数组顺序不一致,(可以使用 .srot() 做一下排序)

2.由于转义成了字符串,会导致原本是数字的数据,会变成字符串类型,可能会影响对比的准确性