Tengo una matriz de objetos si los items de propiedad tienen el mismo valor, devuelva ese objeto de matriz en javascript
En la lista a continuación, recupere la matriz de objetos que tienen el mismo valor en
propiedad de items en javascript
nota: también matriz de objetos dinámicos, el valor de los elementos puede variar, por lo que no se puede filtrar directamente con el valor
var list =[ {id: 1, name: "dev", items: "sales", code: "IN"}, {id: 2, name: "lena", items: "finance", code: "SG"} {id: 3, name: "lisa", items: "sales", code: "AU"}, {id: 4, name: "mano", items: "marketing", code: "IN"} ] Expected Result {id: 1, name: "dev", items: "sales", code: "IN"} {id: 3, name: "lisa", items: "sales", code: "AU"}, var result= list.reduce((m, o) => { const found= m.find(e => e.items === o.items); if(found){ m.push(o); return m } }, []);Con reduce es más engorroso encontrar todos los duplicados. Puedes usar el cierre.
const list = [ { id: 1, name: "dev", items: "sales", code: "IN" }, { id: 2, name: "lena", items: "finance", code: "SG" }, { id: 3, name: "lisa", items: "sales", code: "AU" }, { id: 4, name: "mano", items: "marketing", code: "IN" }, { id: 5, name: "lisa", items: "gul gul", code: "AU" }, { id: 6, name: "anthony", items: "some", code: "AU" }, { id: 7, name: "mark", items: "gul gul", code: "AU" } ]; const findByItems = (eq) => (arr) => arr.filter( (x, i) => arr.find((y, j) => i !== j && eq(x, y)) ) const duplicatedItems = findByItems((a, b) => a.items === b.items); console.log(duplicatedItems(list))Personalmente, agruparía los artículos en la entrada por sus valores de artículos y luego extraería el que tiene el grupo más largo (en su ejemplo, finanzas y marketing tendrían un artículo y solo ventas tendrían dos):
var list = [ {id: 1, name: "dev", items: "sales", code: "IN"}, {id: 2, name: "lena", items: "finance", code: "SG"}, {id: 3, name: "lisa", items: "sales", code: "AU"}, {id: 4, name: "mano", items: "marketing", code: "IN"} ] const map = {} for (let item of list) { if (map[item.items]) { map[item.items].push(item); } else { map[item.items] = [item] } } let maxLength = 0, result; for (let key in map) { if (map[key].length > maxLength) { maxLength = map[key].length result = map[key] } } console.log(result)esto regresará
[ { id: 1, name: 'dev', items: 'sales', code: 'IN' }, { id: 3, name: 'lisa', items: 'sales', code: 'AU' } ]como estabas esperando.