let arr1 = [['item 1', 'item 2'],['item 3', 'item 4']] let arr2 = ['item 1', 'item 2']
I need to check whether arr2 exist in arr1
let arr1 = [['item 1', 'item 2'],['item 3', 'item 4']] let arr2 = ['item 1', 'item 2']
I need to check whether arr2 exist in arr1
You can use Array#some
along with Array#every
.
let arr1 = [ ['item 1', 'item 2'], ['item 3', 'item 4'] ] let arr2 = ['item 1', 'item 2'] let res = arr1.some(x => x.length === arr2.length && x.every((e, i) => e === arr2[i])); console.log(res);
arr1.splice(arr1.findIndex(x => x.length === arr2.length && x.every((e, i) => e === arr2[i])), 1)
CommentedMay 24, 2021 at 17:41To keep it simple you can use the combination of every and some as below, it returns true if exists and false if not
arr1.some(i => i.length === arr2.length && i.every(it => arr2.includes(it)))
let res = arr1.findIndex(x => x.length === arr2.length && x.every((e, i) => e === arr2[i])); arr1.splice(0,1)
; 2. you can directly use filter arr1 = arr1.filter(x => x.length !== arr2.length || x.some((e, i) => e !== arr2[i]));
CommentedMay 25, 2021 at 4:51If you want a very quick and easy way to check, you could do:
arr1.findIndex(arr => { return JSON.stringify(arr) === JSON.stringify(arr2) })
Which will return the position of arr2 within arr1, or '-1' if it does not exist in arr1