сравнить несортированный массив jquery и получить индекс - PullRequest
0 голосов
/ 26 февраля 2019

Есть ли способ получить индекс несортированного значения в массиве с помощью 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 голосов
/ 26 февраля 2019

С 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 массив

И если у вас есть только несортированный массив и вы хотите узнать, чтоявляются значениями неотсортированных элементов, вы можете создать отсортированный массив, а затем применить ту же логику, что и раньше

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...