`JS` 两个数组如何对比

JavaScript022

`JS` 两个数组如何对比,第1张

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

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

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

你这个代码不是 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

}

以上,请采纳,请给分。

要判断JS中的两个数组是否相同,需要先将数组转换为字符串,再作比较。以下两行代码将返回true<script type="text/javascript">alert([].toString()== [].toString())alert([].toString()===[].toString())</script>JS要比较两个数组是否有相同的元素,即两个数组所有元素都相同,但元素的顺序不一定一致。只就需要先将数组进行排序,再比较两个数组是否相等。试比较以下两行代码:<script type="text/javascript">alert([1,2,3].toString()== [3,2,1].toString())alert([1,2,3].sort().toString()== [3,2,1].sort().toString())</script>