const duplicates = Array
.from(arr.reduce((acc, n) => acc.set(n.id, acc.has(n.id)), new Map))
.reduce((acc, n) => (n[1] && acc.push(n[0]), acc), []);
// или
const duplicates = Object
.entries(arr.reduce((acc, n) => (acc[n.id] = (acc[n.id] || 0) + 1, acc), {}))
.filter(n => n[1] > 1)
.map(n => +n[0]);
// или
const duplicates = [...arr
.reduce((acc, n) => (acc[+acc[0].has(n.id)].add(n.id), acc), [ new Set, new Set ])
.pop()
];
// или
const duplicates = arr
.map(n => n.id)
.filter((n, i, a) => i !== a.indexOf(n))
.filter((n, i, a) => i === a.indexOf(n));
// или
const duplicates = arr.reduce((acc, { id: n }, i, a) => (
!acc.includes(n) && i !== a.findIndex(m => m.id === n) && acc.push(n),
acc
), []);
по нескольким полям (более 50),
if ( new Set([a, b, c]).size === 1 ) { // сколько угодно переменных в массиве
this.returnItemBoolian();
}
Так вот, можно ли его использовать в своих проектах?
Сложно ли учить новый язык программирования после JavaScript?Что Вы подразумеваете под словом "учить новый язык"? Учить синтаксис нового языка? Нет, не сложно, но не особо понятно, зачем оно в целом Вам надо? Знание синтаксиса языка без более глубокого понимания происходящего на более низком уровне - всё равно, что знание алфавита без понимания того, что означаю слова (составленные из букв этого алфавита).
Любое приложение, которое можно написать на JavaScript, будет в итоге написано на JavaScript