【问题标题】:compare unsorted array jquery and get index比较未排序的数组jquery并获取索引
【发布时间】:2019-02-26 19:59:57
【问题描述】:

有什么方法可以使用 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)

【问题讨论】:

    标签: jquery arrays indexing


    【解决方案1】:

    使用 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);

    【讨论】:

    • 我的荣幸。确保将其标记为已回答,以便其他用户也可以知道答案。干杯
    猜你喜欢
    • 2021-07-30
    • 2021-04-22
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 2014-11-06
    • 2014-09-26
    • 1970-01-01
    • 2011-06-19
    相关资源
    最近更新 更多