Me pregunto si cuál es la mejor manera de encontrar todos los índices de objetos en una matriz y luego eliminarlos de la matriz. Actualmente, mi código se ve como se muestra a continuación;
var data = _.find(group.value, function(valueItem){ return valueItem.value == filter.value }); var index =_.indexOf(group.value,data); group.value.splice(index,1);Esto funciona muy bien, pero solo me da el primer índice si el índice es más de una vez. Por lo tanto, estoy buscando un método que me proporcione todos los índices en mi Array, para poder recorrerlos y eliminarlos todos.
Utilice el filter para crear una nueva matriz de objetos.
Basado en su ejemplo, este código crea nuevas matrices basadas en el valor (nombre) de cada propiedad de value . Envolví el código del filter en una función ( getData ) a la que puede llamar con la matriz original y el nombre que desea verificar como argumentos.
Si no hay ninguna coincidencia, la función devolverá una matriz vacía.
const arr = [ { id: 1, value: 'bob' }, { id: 2, value: 'dave' }, { id: 3, value: 'bob' }, { id: 4, value: 'bob' } ]; function getData(arr, name) { return arr.filter(obj => obj.value === name); } console.log(getData(arr, 'bob')); console.log(getData(arr, 'dave')); console.log(getData(arr, 'mary'));