Nodejs Array Subset isSubsetOf(matchArr)

Here you can find the source of isSubsetOf(matchArr)

Method Source Code

/*/*from  w  w w  . j a va 2  s .  c  om*/
 * 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.
 *
 * 
 * var a = ['commit','push']
 * a.isSubsetOf(['commit','rebase','push','blame']) // true
 *
 * NOTE: You should disregard duplicates in the set.
 *
 * var b = ['merge','reset','reset']
 *
 * b.isSubsetOf(['reset','merge','add','commit']) // true 
 *
 * 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 (matchArr) {
  var arr = this;
  for (var i = 0; i < arr.length; i++) {
    if (matchArr.indexOf(arr[i]) === -1 && typeof arr[i] !== 'object') {
      return false;
    }
  }
  return true;
};

var a = ['commit','push'];
console.log(a.isSubsetOf(['commit','rebase','push']));

Related

  1. isSubsetOf(input)
    Array.prototype.isSubsetOf = function(input) {
      var isSub = true;
      this.forEach(function (el) {
        if (!input.includes(el)) {
          isSub = false;
      });
      return isSub;
    };
    ...
    
  2. isSubsetOf(input)
    Array.prototype.isSubsetOf = function(input){
      let result = true;
      this.forEach(item => input.indexOf(item) !== -1 ? result = result && true : result = false);
      return result;
    
  3. isSubsetOf(input)
    Array.prototype.isSubsetOf = function(input) {
      var freq = {};
      for (var i = 0; i < this.length; i++) {
        freq[this[i]] = 1;
      for (var j = 0; j < input.length; j++) {
        if (freq[input[j]]) {
          delete freq[input[j]];
      return Object.keys(freq).length === 0;
    };
    
  4. isSubsetOf(inputArray)
    Array.prototype.isSubsetOf = function(inputArray) {
      var exists = true;
      for (var i = 0; i < this.length; i++) {
        if (inputArray.indexOf(this[i]) === -1) {
          exists = false;
      return exists;
    };
    ...
    
  5. isSubsetOf(inputArray)
    Array.prototype.isSubsetOf = function(inputArray) {
      for (var i = 0; i < this.length; i++) {
        var contains = false;
        for (var j = 0; j < inputArray.length; j++) {
          if (inputArray[j] === this[i]) {
            contains = true;
        if (!contains) {
    ...
    
  6. isSubsetOf(subset)
    'use strict';
    Array.prototype.isSubsetOf = function(subset){
      var arr = this;
    };
    
  7. isSubsetOfarray()
    Array.prototype.isSubsetOf = array => {
      let hash = {};
      let result = true;
      array.forEach(item => {
        hash.item ? hash.item++ : hash.item = 0;
      });
      this.forEach(item => {
        hash.item ? hash.item++ : result = false;
      });
    ...