1
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

2
  • You will have to use some and every. Does the order matter? Commented May 24, 2021 at 17:11
  • This is a very popular gist that tackle this: jsfiddle.net/SamyBencherif/8352y6yw Commented May 24, 2021 at 17:26

3 Answers 3

3

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);

Sign up to request clarification or add additional context in comments.

3 Comments

Thanks for the answer, now If I want to delete that item how can I?
You can use arr1.splice(arr1.findIndex(x => x.length === arr2.length && x.every((e, i) => e === arr2[i])), 1)
@geekglance No problem.
1

To 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)))

2 Comments

If I want to delete that item how can i?
1 . You can use findIndex and splice 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]));
0

If 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

1 Comment

Quick note: This will only work if you are trying to match the order (which you might be seeing as in JS arrays are ordered)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.