I have problem when I wanna grouping my object value data by key
in javascript. I have data object like this.
my data:
const obj = [
{total_present: "35", total_overtime: "12"},
{total_present: "25", total_overtime: "5"},
{total_present: "15", total_overtime: "15"},
{total_present: "23", total_overtime: "13"},
{total_present: "31", total_overtime: "22"},
{total_present: "17", total_overtime: "15"},
{total_present: "19", total_overtime: "19"},
{total_present: "23", total_overtime: "14"},
{total_present: "24", total_overtime: "11"},
{total_present: "21", total_overtime: "10"}
];
and I wanna mannipulate it to this:
{
total_overtime: ["12", "5", "15", "13", "22", "15", "19", "14", "11", "10"]
total_present: ["35", "25", "15", "23", "31", "17", "19", "23", "24", "21"]
}
How it possible I make my data to like that?
If my explanation is incomprehensible, I apologize, and you can ask me again, Thank You
Assuming you want to achieve this:
const objGrouped = {
total_present: ["35", "25", "15", "23", "31", "17", "19", "23", "24", "21"],
total_overtime: ["12", "5", "15", "13", "22", "15", "19", "14", "11", "10"]
}
You can do this:
const objGrouped = {
total_present: obj.map(item => item.total_present),
total_overtime: obj.map(item => item.total_overtime),
}
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
const obj = [ {total_present: "35", total_overtime: "12"}, {total_present: "25", total_overtime: "5"}, {total_present: "15", total_overtime: "15"}, {total_present: "23", total_overtime: "13"}, {total_present: "31", total_overtime: "22"}, {total_present: "17", total_overtime: "15"}, {total_present: "19", total_overtime: "19"}, {total_present: "23", total_overtime: "14"}, {total_present: "24", total_overtime: "11"}, {total_present: "21", total_overtime: "10"} ]; console.log( [ {total_present: obj.map(item => item.total_present)}, {total_overtime: obj.map(item => item.total_overtime)} ] )
You can reduce it.
const obj = [ {total_present: "35", total_overtime: "12"}, {total_present: "25", total_overtime: "5"}, {total_present: "15", total_overtime: "15"}, {total_present: "23", total_overtime: "13"}, {total_present: "31", total_overtime: "22"}, {total_present: "17", total_overtime: "15"}, {total_present: "19", total_overtime: "19"}, {total_present: "23", total_overtime: "14"}, {total_present: "24", total_overtime: "11"}, {total_present: "21", total_overtime: "10"} ]; let result = obj.reduce((a,{total_present, total_overtime}) => { a.total_present.push(total_present); a.total_overtime.push(total_overtime); return a; },{total_present: [], total_overtime: []}) console.log(result);
You could reduce the array and take the entries for the result set.
const array = [{ total_present: "35", total_overtime: "12" }, { total_present: "25", total_overtime: "5" }, { total_present: "15", total_overtime: "15" }, { total_present: "23", total_overtime: "13" }, { total_present: "31", total_overtime: "22" }, { total_present: "17", total_overtime: "15" }, { total_present: "19", total_overtime: "19" }, { total_present: "23", total_overtime: "14" }, { total_present: "24", total_overtime: "11" }, { total_present: "21", total_overtime: "10" }], result = array.reduce((r, o) => { Object.entries(o).forEach(([k, v]) => (r[k] = r[k] || []).push(v)); return r; }, {}); console.log(result);
Try this
const list = [ {total_present: "35", total_overtime: "12"}, {total_present: "25", total_overtime: "5"}, {total_present: "15", total_overtime: "15"}, {total_present: "23", total_overtime: "13"}, {total_present: "31", total_overtime: "22"}, {total_present: "17", total_overtime: "15"}, {total_present: "19", total_overtime: "19"}, {total_present: "23", total_overtime: "14"}, {total_present: "24", total_overtime: "11"}, {total_present: "21", total_overtime: "10"} ]; const result = Object.entries(list[0]).map(([key]) => { return {[key]: list.map(obj => obj[key])}; }); console.log(result);
var a = [] , b = [];
for(let i in obj){
a.push(obj[i].total_present);
b.push(obj[i].total_overtime);
}
var newArray = { total_present: a,total_overtime:b};
const obje = [ {total_present: "35", total_overtime: "12"}, {total_present: "25", total_overtime: "5"}, {total_present: "15", total_overtime: "15"}, {total_present: "23", total_overtime: "13"}, {total_present: "31", total_overtime: "22"}, {total_present: "17", total_overtime: "15"}, {total_present: "19", total_overtime: "19"}, {total_present: "23", total_overtime: "14"}, {total_present: "24", total_overtime: "11"}, {total_present: "21", total_overtime: "10"} ]; resx=obje.reduce((res,cur)=>{ res["total_present"]= res["total_present"] || [] res["total_present"].push(cur.total_present) res["total_overtime"]=res["total_overtime"] || [] res["total_overtime"].push(cur.total_overtime) return res },{}) console.log(resx)
you can use this code
let mapper={}
for(let item of obj){
for(let key in item){
if(mapper[key]){
mapper[key].push(item[key])
}else{
mapper[key]=[item[key]]
}
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.