Nodejs Array Subset isSubsetOf(arr)

Here you can find the source of isSubsetOf(arr)

Method Source Code

/*//  ww w .  j  a v  a 2s  .  com
 * 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 neither
 * array will contain objects or arrays as elements within them.
 * Extra credit: Make the method work for arrays that contain objects and/or arrays as elements.
*/


Array.prototype.isSubsetOf = function (arr) {
  var objectify = function(arr) {
    var obj = {};
    for (var i = 0; i < arr.length; i++) {
      obj[arr[i]] = true;
    }
    return obj;
  };
  var obj = objectify(arr);
  for (var j = 0; j < this.length; j++) {
    if (obj[this[j]] === undefined) {
      return false;
    }
  }
  return true;
};

var test = [['a', 'b'], {'a': 1, 'b': 2}, 'a', 'c'];
console.log(test.isSubsetOf(['c', ['a', 'b'], {'a': 1, 'b': 2}, 'a', 'b']));

Related

  1. isSubsetOf()
    Array.prototype.isSubsetOf = function() {
        var args=arguments[0];
        var len=this.length;
        var i;
        var counter=0;
        console.log(args);
        for(i=0; i<len; i++){
            if(args.indexOf(this[i])>=0){
                counter++;
    ...
    
  2. isSubsetOf(arr)
    Array.prototype.isSubsetOf = function(arr) {
      return isSubsetObjs(this, objectify(arr));
    };
    var isSubsetObjs = function(arr, obj2) {
      for (var i = 0; i < arr.length; i++) {
        if (!obj2.hasOwnProperty(arr[i])) { 
         return false; 
      } return true;
    ...
    
  3. isSubsetOf(arr)
    Array.prototype.isSubsetOf = function (arr) {
      for (var i = 0; i < this.length; i++) {
        if (arr.indexOf(this[i]) === -1) {
          return false; 
      return true; 
    }; 
    
  4. isSubsetOf(arr)
    Array.prototype.isSubsetOf = function (arr) {
      let result = 0;
      for (let i = 0; i < this.length; i += 1) {
        for (let p = 0; p < arr.length; p += 1) {
          if (this[i] === arr[p]) {
            result += 1;
            break;
        if (i + 1 !== result) {
          return false;
      return true;
    };
    const b = ['merge','reset','reset']
    console.log(b.isSubsetOf(['reset','merge','add','commit']));
    const a = ['commit','push','blame'];
    console.log(a.isSubsetOf(['commit','rebase','push','blame']));
    
  5. isSubsetOf(arr)
    Array.prototype.isSubsetOf = function (arr) {
      var subArr = this;
      var words = {};
      for (var i = 0; i < arr.length; i++) {
        if (!words[arr[i]]) {
          words[arr[i]] = true;
      for (var i = 0; i < subArr.length; i++) {
    ...
    
  6. isSubsetOf(arr)
    Array.prototype.isSubsetOf = function (arr) {
      var objectify = function (arr) {
        var obj = {};
        for (var i = 0; i < arr.length; i++) {
          obj[arr[i]] = true;
        return obj;
      };
      var obj = objectify(arr);
    ...
    
  7. isSubsetOf(array)
    Array.prototype.isSubsetOf = function(array) {
      return this.reduce(function (acc, val) {
        if (acc) {
          return array.includes(val);
        return false;
      }, true)
    };