Nodejs Array Subset isSubsetOf(array)

Here you can find the source of isSubsetOf(array)

Method Source Code

/*// ww w.j a v  a 2  s .co m
 * Make an array method that can return whether or not a context array is a
 * subset of an input array.  To simplify the problem, you can assume that both
 * arrays will contain only strings.
 *
 * See http://en.wikipedia.org/wiki/Subset for more on the definition of a
 * subset.
*/

/*
 * Extra credit: Make the method work for arrays that contain any value,
 * including non-strings.
*/

Array.prototype.isSubsetOf = function (array) {
  var subset    = this;
  var subsetLen = subset.length;
  var supersetLen = array.length;
  var first, found;

  // base case
  if ( subsetLen > supersetLen ) return false;
  if ( subsetLen === 0 && supersetLen >= 0 ) return true;

  // supLen is greater than or equal to subLen and supLen is greater than 0
  first = subset[0];
  found = array.indexOf( first );

  if ( found === -1 ) return false;
  return subset.slice(1).isSubsetOf( Array.prototype.concat( array.slice(0, found), array.slice(found + 1) ) );
};

Related

  1. isSubsetOf(array)
    Array.prototype.isSubsetOf = function(array) {
      return this.reduce(function (acc, val) {
        if (acc) {
          return array.includes(val);
        return false;
      }, true)
    };
    
  2. isSubsetOf(array)
    Array.prototype.isSubsetOf = function(array) {
      for(var i = 0; i < this.length; i++){
        if(array.indexOf(this[i])===-1){
          return false
      return true;
    };
    
  3. isSubsetOf(array)
    Array.prototype.isSubsetOf = function(array) {
      var isSubset = true;
      if(this.forEach(function(element){
        if(!array.includes(element)){
          isSubset = false;
      }));
      return isSubset;
    };
    ...
    
  4. isSubsetOf(array)
    Array.prototype.isSubsetOf = function(array) {
      var result = true;
      for (var i = 0; i < this.length; i ++) {
        if(array.indexOf(this[i]) === -1) {
          result = false;
      return result;
    };
    ...
    
  5. isSubsetOf(array)
    Array.prototype.isSubsetOf = function(array) {
      var arr = this;
      var obj = {};
      for(var i=0; i<array.length; i++) {
        obj[array[i]] = true; 
      for(var i=0; i<arr.length; i++) {
        if(!(arr[i] in obj)) {
          return false;
    ...
    
  6. isSubsetOf(array)
    Array.prototype.isSubsetOf = function(array) {
      var subArray = this;
      var map = {};
      for(var i=0;i<subArray.length;i++){
        if(!map[subArray[i]]){
          if(array.indexOf(subArray[i]) === -1){
            return false;
        map[subArray[i]] = true;
      return true;
    };
    
  7. isSubsetOf(array)
    Array.prototype.isSubsetOf = function(array) {
      function arrayContains(array, item) {
        for (var i = 0; i < array.length; i++) {
          if (array[i] === item) {
            return true;
        return false;
      for (var i = 0; i < this.length; i++) {
        if (!arrayContains(array, this[i])) {
          return false;
      return true;
    
  8. isSubsetOf(array)
    var a = ['commit', 'push'];
    var b = ['merge', 'reset', 'reset'];
    Array.prototype.isSubsetOf = function (array) {
      for (var i = 0; i < this.length; i++) {
        if (array.indexOf(this[i]) === -1) {
          return false;
      return true;
    ...
    
  9. isSubsetOf(bigArray)
    Array.prototype.isSubsetOf = function(bigArray) {
      var uniqueSub = this.unique();
      var uniqueBig = bigArray.unique();
      var status = true;
      this.forEach(function(item) {
        if(bigArray.indexOf(item) === -1) status = false;
      });
      return status;
    };
    ...