比较Javascript/AngularJS中的两个数组

比较Javascript/AngularJS中的两个数组,javascript,angularjs,Javascript,Angularjs,我想检查两个数组值是否相同。我正在使用带有复选框的表单。是否需要显示复选框数组中的任何更改?。有人能帮我吗。两个这样的数组 array1 = ['1','2','3']; //previous checklist array2 = ['3','2','1']; //new checklist 下面是一个比较两个数组的片段 var array1 = [1,2,3]; var array2 = [1,2,3]; var result = array1.length == array2.lengt

我想检查两个数组值是否相同。我正在使用带有复选框的表单。是否需要显示复选框数组中的任何更改?。有人能帮我吗。两个这样的数组

array1 = ['1','2','3']; //previous checklist
array2 = ['3','2','1']; //new checklist

下面是一个比较两个数组的片段

var array1 = [1,2,3];
var array2 = [1,2,3];

var result = array1.length == array2.length && array1.every(function(element, index) {
    return element === array2[index]; 
});

alert(result);
但是,一个数组中的1,2,3不等于另一个数组中的3,2,1。您没有提到要检查数组元素或仅检查数组

如果需要比较两个位置不同的阵列,请尝试以下操作

var array1=[1,2,3,4]
var array2=[1,4,3,2]
var result = array1.length==array2.length && array1.every(function(v,i) { return ($.inArray(v,array2) != -1)})
console.log(result)
我明白了:

let arr = ['1', '2', '3'];
let arr2 = ['3', '1', '2'];

let finalResult = arr.length === arr2.length;
arr.forEach(function (item) {
  if (!finalResult) {
    return;
  }

  if (arr2.find(function (item2) { return item === item2; }) === undefined) {
    finalResult = false;
  }
});

console.log(finalResult);
//重写现有方法时发出警告
if(Array.prototype.equals)
console.warn(“覆盖现有的Array.prototype.equals。可能的原因:新API定义了方法,存在框架冲突,或者代码中包含了双重内容。”);
//将.equals方法附加到数组的原型以在任何数组上调用它
Array.prototype.equals=函数(数组){
//如果另一个数组是falsy值,则返回
if(!数组)
返回false;
//比较长度-可以节省大量时间
if(this.length!=array.length)
返回false;
for(var i=0,l=this.length;i对于(var j=0,k=compareToArray.length;j最后,我有了比较javascript中两个数组的完美答案

var array1 = ["1","2","3"];

        var arr1 = array1.map(function (x) {
            return parseInt(x, 10);
        });
        var array2 = ["3","2","1"];
        var arr2 = array2.map(function (x) {
            return parseInt(x, 10);
        });

        var finalArray1 = arr1.sort();
        var finalArray2 = arr2.sort();

        var is_same = finalArray1.length == finalArray2.length && finalArray1.every(function(element, index) {
                return element === finalArray2[index];
            });
         if(is_same == true){
            console.log('match');
         }else{
            console.log('not match');
         }

请阅读并向我们展示您所做的尝试。这样我们就可以从这一点开始讨论您的问题。可能的重复我需要比较两个不同位置的阵列。
var array1 = ["1","2","3"];

        var arr1 = array1.map(function (x) {
            return parseInt(x, 10);
        });
        var array2 = ["3","2","1"];
        var arr2 = array2.map(function (x) {
            return parseInt(x, 10);
        });

        var finalArray1 = arr1.sort();
        var finalArray2 = arr2.sort();

        var is_same = finalArray1.length == finalArray2.length && finalArray1.every(function(element, index) {
                return element === finalArray2[index];
            });
         if(is_same == true){
            console.log('match');
         }else{
            console.log('not match');
         }