Check if an array is subset of another array

check whether an array is subarray of another array
how to check if an array is a subset of another in c++
check if array is subset of another array python
check if an array contains any elements in another array in java
check if array is subset of another array php
subset of array c++
check if one array is subset of another js
check if an array contains any element of another array

Let's say I have two arrays,

var PlayerOne = ['B', 'C', 'A', 'D'];
var PlayerTwo = ['D', 'C'];

What is the best way to check if arrayTwo is subset of arrayOne using javascript?

The reason: I was trying to sort out the basic logic for a game Tic tac toe, and got stuck in the middle. Here's my code anyway... Thanks heaps!

var TicTacToe = {


  PlayerOne: ['D','A', 'B', 'C'],
  PlayerTwo: [],

  WinOptions: {
      WinOne: ['A', 'B', 'C'],
      WinTwo: ['A', 'D', 'G'],
      WinThree: ['G', 'H', 'I'],
      WinFour: ['C', 'F', 'I'],
      WinFive: ['B', 'E', 'H'],
      WinSix: ['D', 'E', 'F'],
      WinSeven: ['A', 'E', 'I'],
      WinEight: ['C', 'E', 'G']
  },

  WinTicTacToe: function(){

    var WinOptions = this.WinOptions;
    var PlayerOne = this.PlayerOne;
    var PlayerTwo = this.PlayerTwo;
    var Win = [];

    for (var key in WinOptions) {
      var EachWinOptions = WinOptions[key];

        for (var i = 0; i < EachWinOptions.length; i++) {
          if (PlayerOne.includes(EachWinOptions[i])) {
            (got stuck here...)
          }

        }
        // if (PlayerOne.length < WinOptions[key]) {
        //   return false;
        // }
        // if (PlayerTwo.length < WinOptions[key]) {
        //   return false;
        // }
        // 
        // if (PlayerOne === WinOptions[key].sort().join()) {
        //   console.log("PlayerOne has Won!");
        // }
        // if (PlayerTwo === WinOptions[key].sort().join()) {
        //   console.log("PlayerTwo has Won!");
        // } (tried this method but it turned out to be the wrong logic.)
    }
  },


};
TicTacToe.WinTicTacToe();

Here is the correct solution:

Using ES7 (ECMAScript 2016):

const result = PlayerTwo.every(val => PlayerOne.includes(val));

Snippet:

const PlayerOne = ['B', 'C', 'A', 'D'];
const PlayerTwo = ['D', 'C'];

const result = PlayerTwo.every(val => PlayerOne.includes(val));

console.log(result);

Find whether an array is subset of another array using Map , using namespace std;. // Function to check if an array is. // subset of another array​. int isSubset( int a[], int b[], int m, int n). {. // map to store the values of array a[]. If you can find a single element in t2 that isn't in t1, then you know that t2 is not a subset of t1. The advantage of this method is that it is done all in-place, without allocating additional space, unlike the solutions using .Except or .Intersect.

If you are using ES6:

!PlayerTwo.some(val => PlayerOne.indexOf(val) === -1);

If you have to use ES5, use a polyfill for the some function the Mozilla documentation, then use regular function syntax:

!PlayerTwo.some(function(val) { return PlayerOne.indexOf(val) === -1 });

Find whether an array is a subset of another array, Search each element of B[] in A[] using linear search. If all elements of B[] is present in A[] then B[] is a subset of A[] else not. There are two loops in the solution where one loop is running m times and other n times. So in the worst case, Time Complexity = O(mn), Space Complexity = O(1). How to check if an array is a subset of another array in Javascript? We will discuss the time complexity of our program and try to improvise upon it. So let’s get started. Let’s define our arrays. I am assuming the arrays are simple and not do have nested objects as elements. For complex array structures, I will come up with another post later.

You can use this simple piece of code.

PlayerOne.every(function(val) { return PlayerTwo.indexOf(val) >= 0; })

Check if an array is subset of another array, Here is the correct solution: Using ES7 (ECMAScript 2016): const result = PlayerTwo.every(val => PlayerOne.includes(val));. Snippet:. Secondly, the second array is traversed to check the number of occurrence of each element of array 2 in array 1. Algorithm to check if an array is a subset of another array. Use two loops. Traverse the array using the outer loop. Using the inner loop, check if the elements in array 2 are present in array 1.

If PlayerTwo is subset of PlayerOne, then length of set(PlayerOne + PlayerTwo) must be equal to length of set(PlayerOne).

var PlayerOne = ['B', 'C', 'A', 'D'];
var PlayerTwo = ['D', 'C'];

// Length of set(PlayerOne + PlayerTwo) == Length of set(PlayerTwo)

Array.from(new Set(PlayerOne) ).length == Array.from(new Set(PlayerOne.concat(PlayerTwo)) ).length

Check if an array is a subset of another array in Javascript in O(n , I am assuming the arrays are simple and not do have nested objects as elements​. For complex array structures, I will come up with another post  Program to Check One Array is Subset of Another Array Write a program to check whether one array is subset of another array or not. Given two integer array Array1 and Array2 of size M and N(N <= M) respectively. We have to check whether Array2 is subset of Aarray1 or not. An array A is subset of another array B,

function isSubsetOf(set, subset) {
    return Array.from(new Set([...set, ...subset])).length === set.length;
}

Find whether an array is subset of another array, Find whether an array is subset of another array | GeeksforGeeks If you wish, translate into Duration: 5:53 Posted: Sep 11, 2019 In this program we will take two arrays and check whether that array 2 is a subset of array 1 or not. C++ program along with output is also given below. Array A2 is not a subset of A1 because 7 is not present in the A1.

Find if an array is a subset of another array in C, C++, Java and , Method 3: The arrays are sorted and merge type of process is done to check if the array 2 elements are found in array 1. Method 4: Firstly, the  Sum of subsets of all the subsets of an array | O(N) Find last remaining element after reducing the Array; Number of subarrays with GCD equal to 1; Check if an array is sorted and rotated using Binary Search; Count of subsets with sum equal to X using Recursion; Minimum increment or decrement required to sort the array | Top-down Approach

Find whether an array is subset of another array, Both the arrays are not in sorted order. Find whether an array is subset of another array | Added Method 3 Check if arr[mid] is the first occurrence of x. Check if each of the elements of the subset array are contained in the HashSet. This is a very fast operation. You don't pick the "larger" / "smaller" arrays. You pick them according to which is supposed to be the subset of the other.

How to check if an array is a subset of another array in Javascript , You have to treat the array as an object as it will return false if you check for and array,. then you have to JSON.strigify the element passed. const tags = [. The data structure you already have is perfect, just check the intersection: Update: The comment discussing permutations is interesting and creative, but quite incorrect as the Ruby implementors anticipated this concern and specified that the order of the result is the order of a1. So this does work, and will continue to work in the future.

Comments
  • Possible duplicate of Determining whether one array contains the contents of another array in JavaScript/CoffeeScript
  • duplicate of stackoverflow.com/questions/8628059/…
  • I would move away from the array and just use strings, would be easier to check for sub string than loop through arrays to find matching sets.
  • var test = playerTwo.every(e => playerOne.includes(e));
  • @yangmei e is the argument passed to the callback (to the arrow function provided as an argument to every method) it's defined along with the arrow function's definition. You may write the same code as var test = playerTwo.every(function(e){ return playerOne.includes(e) });
  • Even better: !PlayerTwo.some(val => !PlayerOne.includes(val));
  • Using every is better than the inverted some,every will short circuit if an element is false, so it would take the same time, and it's a lot more readable.
  • What about duplications? Is ['B', 'B'] a subset of ['B', 'C', 'A', 'D']? Or just for ['B', 'B', 'C', 'A', 'D']? The above logics did not handle these cases.
  • Array.from(...) is not necessary. Use .size of the new set directly: new Set([...set, ...subset]).size
  • .every and .some both will early exit when the final result becomes known.