'Ho can i make an array of only those values, that are non-unique in initial array in js? [closed]
i have this array:
var arr = ["apple","potato","carrot","tomato","grape","banana","potato","carrot","carrot"];
As you can see, we have "potato" 2 times in this array, and also "carrot" 3 times in this array. How can i create a new array, that will content only "potato" and "carrot" values, so only values that are not single/unique in initial array?
Like this:
["potato","carrot"];
How it can be done in js?
Solution 1:[1]
Check this one liner:
[...new Set(arr.filter(e => arr.filter(a => a === e).length > 1))];
arr.filter(e ...) - filter array for duplicates
[...new Set(...))] - create array with unique values using set and spread syntax
Working snippet:
var arr = ["apple","potato","carrot","tomato","grape","banana","potato","carrot","carrot"];
console.log([...new Set(arr.filter(e => arr.filter(a => a === e).length > 1))]);
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | jns |
