Estoy tratando de eliminar todos los _er y _bx de la matriz, ¿cómo puedo hacerlo? La forma en que lo intenté no parece funcionar. Me gustaría ver una solución en la que elimine todo después de _ , y también solo la letra que puse, por ejemplo, elimine todo _ con er después.
const nullValue = { collection: [{ name: "test_er" }, { name: "test_bx" }, { name: "fred" }, { name: "test_er" } ] }; const newArr = [] for (let [key, item] of nullValue.collection.entries()) { item.name.replace(/_er/g, '') newArr.push(item) } console.log(newArr)¿Es esto lo que estás buscando?
const nullValue = { collection: [ { name: 'test_er', }, { name: 'test_bx', }, { name: 'fred', }, { name: 'test_er', }, ], }; nullValue.collection = [ ...nullValue.collection.map(item => ({ name: item.name.replace(/_.*$/, ''), })), ]; console.log(nullValue);También puede usar .split('_')[0] con el método map similar a la respuesta de Dmitry... Esto le da la primera cadena de la matriz dividida, dividida en el guión bajo ...
const nullValue = { collection: [{ name: "test_er" }, { name: "test_bx" }, { name: "fred" }, { name: "test_er" } ] }; nullValue.collection = [ ...nullValue.collection.map( names => ({ name: names.name.split('_')[0], })),] console.log(nullValue)Si desea mantener la matriz original de objetos...
const nullValue = { collection: [{ name: "test_er" }, { name: "test_bx" }, { name: "fred" }, { name: "test_er" } ] }; const newArr = { collection : [ ...nullValue.collection.map( names => ({ name: names.name.split('_')[0], })), ]} console.log('newArr = ', newArr) console.log('nullValue = ', nullValue) const nullValue = { collection: [ { name: "test_er" }, { name: "test_bx" }, { name: "fred" }, { name: "test_er" } ] }; nullValue.collection = nullValue.collection.map(i => i.name.replace(/_.*$/, '')) console.log(nullValue)