javascript surprising array comparison

前端 未结 3 857
伪装坚强ぢ
伪装坚强ぢ 2020-11-27 21:27

I\'m trying to compare two arrays in javascript.

What I\'d like is:

a < b ⇔ ∃ i ≥ 0 s.t. a[i] < b[i] and ∀ 0 ≤ j

3条回答
  •  遥遥无期
    2020-11-27 22:03

    I couldn't find an answer about how to actually compare arrays in Javascript and get "expected" results, so here is the code

    compareArrays = function(a, b) {
      var elA, elB, i, len; 
      for (i = 0, len = Math.min(a.length, b.length); i < len; i++) {               
        elA = a[i], elB = b[i];
        if (elA > elB) return 1;
        if (elA < elB) return -1;
      }
      return b.length - a.length;
    };
    
    console.log(compareArrays([-2], [-1])) # -1
    console.log(compareArrays([], [])) # 0
    console.log(compareArrays([null], [undefined])) # 0
    console.log(compareArrays([1, 2, 3], [1, 2, 3, 4])) # 1
    console.log(compareArrays([0, 2], [0, 1])) # 1
    console.log(compareArrays([1], [NaN])) # 0
    console.log(compareArrays([NaN], [1])) # 0
    

提交回复
热议问题