Sha256: 8ee84e89c960c4d131108521f08866db241eb83a8b1a0bc0429b16ecd2edd913

Contents?: true

Size: 699 Bytes

Versions: 36

Compression:

Stored size: 699 Bytes

Contents

function List(list) {
  this.list = list || [];

  return {
    list: this.list,
    compare: function(other){
        return {
          '-1': isSublist(other.list, this.list)
                  ? 'SUBLIST'
                  : 'UNEQUAL',
          '0':  isSublist(other.list, this.list)
                  ? 'EQUAL'
                  : 'UNEQUAL',
          '1':  isSublist(this.list, other.list)
                  ? 'SUPERLIST'
                  : 'UNEQUAL'
        }[lengthDiff(this, other)];
    }
  }
}

function lengthDiff(one, two){
  return String(Math.sign(one.list.length - two.list.length));
}

function isSublist(one, two){
  return one.join().match(two.join());
}


module.exports = List;

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
trackler-2.2.1.37 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.36 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.35 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.34 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.33 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.32 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.31 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.30 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.29 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.28 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.27 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.26 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.25 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.24 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.23 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.22 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.21 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.20 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.19 tracks/javascript/exercises/sublist/example.js
trackler-2.2.1.18 tracks/javascript/exercises/sublist/example.js