I want to convert multiple objects with same id as test to array of objects
Actual:
const array= [
{ "test": 1},
{ "test": 2},
{ "test": 3},
{ "test": 4},
]
Expected:
test: [1,2,3,4]
Can someone please help
CodePudding user response:
Just use the native method map (read more here or here) like this:
const array= [
{ "test": 1},
{ "test": 2},
{ "test": 3},
{ "test": 4},
];
const newArray = array.map(p => p.test);
console.log(JSON.stringify(newArray)); //[1,2,3,4]
Hope this helps.. ;D
CodePudding user response:
You can use the map function for this https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map :
const newarray = array.map(x => x.test);
console.log(newarray);
CodePudding user response:
const result = {};
yourArray.forEach( ( object ) => {
const keys = Object.keys( object );
for ( let i = 0; i < keys.length; i ) {
const key = keys[ i ];
if ( ! key in result ) {
result[ key ] = [];
}
result[key] = [...result[key], ...object[key] ];
}
});
console.log( result );
In this case:
- You need to iterate in your array
- On each iteration you have a new object
- From there you iterate in all the keys of that current object
- If the key does not exists in your result create a new empty array
- Merge the value from the result with the current value of the object.
- Values are stored in result.
CodePudding user response:
You could map the values from the object.
const
array = [{ test: 1 }, { test: 2 }, { test: 3 }, { test: 4 }],
values = array.flatMap(Object.values);
console.log(values);
CodePudding user response:
const arr = [
{ "test": 1 },
{ "test": 2 },
{ "test": 3 },
{ "test": 4 },
{ "test1": 1 },
{ "test1": 5 },
{ "test2": 6 }
];
const newArr = arr.reduce((acc, cur) => ({
...acc,
[Object.keys(cur)[0]]: (acc[Object.keys(cur)[0]] || []).concat(Object.values(cur)[0])
}), {});
console.log( newArr );
//{ "test": [1,2,3,4], "test1": [1,5], "test2": [6] }
