tengo una matriz como esta
const arr = [{ name: 'sara' }, { name: 'joe' }]; y quiero verificar si el name es único en toda la matriz, así que
const arr = [{ name: 'sara' }, { name: 'joe' }];//sara is unique //true const arr = [{ name: 'sara' }, { name: 'sara' },{ name: 'joe' }];//sara is unique //false sé que hay array.some pero no ayuda en mi situación
¿Cuál es la mejor manera de lograr eso usando javascript? Gracias de antemano.
Puede tomar un solo bucle y un Set para el valor visto.
isUnique es una función que toma un nombre de propiedad y devuelve una función para Array#every .
const isUnique = (key, s = new Set) => o => !s.has(o[key]) && s.add(o[key]), a = [{ name: 'sara' }, { name: 'joe' }], b = [{ name: 'sara' }, { name: 'sara' }, { name: 'joe' }]; console.log(a.every(isUnique('name'))); // true console.log(b.every(isUnique('name'))); // falsetengo esta implementación y dosifica el trabajo
const arr = [{ name: "salah" }, { name: "joe" }]; let bols = []; arr.forEach((item1, i1) => { arr.forEach((item2, i2) => { if (i1 !== i2) { bols.push(item2.name === item1.name); } }); }); bols.some((item) => item === true);