Tengo un objeto de matriz como el que se muestra a continuación y quiero obtener el resultado con solo 3 claves de identificación , token y nombre :
[ { id:1, token: 'xyz', name: 'john', _v: 2, _isActived: true, _isBlocked: false, ... }, { id: 2, token: 'abc', name: 'thomas', _v: 2, _isActived: true, _isBlocked: false, ... }, ... ]Mi resultado deseado:
[ { id:1, token: 'xyz', name: 'john' }, { id:2, token: 'abc', name: 'thomas' }, ... ]Quien me puede ayudar por favor!
Array.map hará el truco.
También he hecho uso de la desestructuración de objetos.
const data = [ { id:1, token: 'xyz', name: 'john', _v: 2, _isActived: true, _isBlocked: false }, { id: 2, token: 'abc', name: 'thomas', _v: 2, _isActived: true, _isBlocked: false }, ]; const output = data.map(({id, name, token}) => ({id, name, token})); console.log(output);Si tiene una lista de claves permitidas. Puede incorporar esto en la función de mapa. Simplemente recorra esta matriz dentro del mapa y agréguela a un objeto.
violín de trabajo
const data = [ { id:1, token: 'xyz', name: 'john', _v: 2, _isActived: true, _isBlocked: false }, { id: 2, token: 'abc', name: 'thomas', _v: 2, _isActived: true, _isBlocked: false }, ]; const list_keys_allowed = ['id', 'token', 'name']; const output = data.map((node) => { const newObj = {}; list_keys_allowed.forEach(key => newObj[key] = node[key]) return newObj; }); console.log(output);Las declaraciones anteriores crearán una nueva matriz a partir de la existente.
Si desea actualizar la matriz original, puede seguir la lógica a continuación.
Lógica
violín de trabajo
const data = [ { id: 1, token: 'xyz', name: 'john', _v: 2, _isActived: true, _isBlocked: false }, { id: 2, token: 'abc', name: 'thomas', _v: 2, _isActived: true, _isBlocked: false }, ]; data.forEach((data) => { const { id, name, token, ...restNodes } = data; // ...restNodes will collect all keys except id, name and token Object.keys(restNodes).forEach((key) => delete data[key]); }); console.log(data);Puedes usar esto
const newArray = myArray.map(object => ({object.id, object.token, object.name}))