比较未排序的数组jQuery并获取索引

时间:2019-02-26 19:59:58

标签: jquery arrays indexing

有什么办法可以使用jQuery获取数组中未排序值的索引吗?我想要的值是第一和第二个数字的索引不同。两侧的数组值相同,我只想获取未排序的数组值。

var arrA = [1,2,3,4];
var arrB = [2,1,3,4];
var c = [0,1]; //expected result

我已经尝试过了,但是没有用。它循环了一切。

var position = [];

    $.each(arrA, function(i, val) {   
        var result = []
        $.each(arrB, function(i2, val2) {   
            if(val!==val2){
                result.push(i2)
                // console.log(val, val2)                    
            }

        });
        position.push(result)
    });

    console.log(position)

1 个答案:

答案 0 :(得分:0)

使用jQuery

const sorted = [1, 2, 3, 4];
const unsorted = [2, 1, 3, 4];
let c = [];

$.each(sorted, i => {
  if (sorted[i] !== unsorted[i]) {
    c.push(i);
  }
});

console.log(c);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

仅JavaScript,带有for循环

var arrA = [1, 2, 3, 4];
var arrB = [2, 1, 3, 4];
var c = [];

for (let i = 0; i < arrA.length; i++) {
  if (arrA[i] !== arrB[i]) {
    c.push(i);
  }
}

console.log(c);

只有unsorted数组时

如果只有 unsorted array 并想找出未排序项的含义,则可以创建一个sorted数组,然后应用与之前相同的逻辑

const arr = [2, 1, 3, 4];
const sorted = [...arr].sort();
var c = [];

for (let i = 0; i < arr.length; i++) {
  if (arr[i] !== sorted[i]) {
    c.push(i);
  }
}

console.log(c);