gpt4 book ai didi

javascript - JS 将嵌套对象转换为对象数组

转载 作者:行者123 更新时间:2023-11-29 15:19:42 27 4
gpt4 key购买 nike

我有这个:

var dataSet = { 
data: {
department: [
{
"Marketing": [
{ "employee_1": "1210" },
{ "employee_2": "3241" },
{ "employee_3": "6510" },
{ "employee_4": "9510" }

]
},
{
"Sales": [
{ "employee_1": "5210" },
{ "employee_2": "1241" },
{ "employee_3": "8510" },
{ "employee_4": "2510" }
]
},
{
"RD": [
{ "employee_1": "1010" },
{ "employee_2": "9241" },
{ "employee_3": "9430" },
{ "employee_4": "3510" }
]
},
...
]
}

我需要这个:

const data = [
{name: 'Marketing', Low: 2, Medium: 4, High: 3},
{name: 'Sales', Low: 3, Medium: 1, High: 5},
{name: 'RD', Low: 6, Medium: 1, High: 2},
...
];

地点:

LOW     employee_x < 2000 
MEDIUM employee_x >= 2000 && employee_x < 5000
HIGH employee_x >= 5000

我最后一次尝试是这样的:

    var low_arr_dept = [];
var medium_arr_dept = [];
var high_arr_dept = [];

for (var i in dataSet.data) {
var department = departments_data[i];

for (var d in department) {
var score = department[d];
for (var j in score) {

if (Object.values(department[d][j]) >= 5000) {
console.log("Object.values(department[d][j]) ", Object.values(department[d][j]))
low_arr_dept.push({

score: Object.values(department[d][j])
});
} else if (Object.values(department[d][j]) >= 2000 && Object.values(department[d][j]) < 5000) {
medium_arr_dept.push({

score: Object.values(department[d][j])
});
} else if (Object.values(department[d][j]) <2000) {
high_arr_dept.push({

score: Object.values(department[d][j])
});
}


}
}

}



// Creating arrays and then getting their length
low_arr_dept_marketing.length.toString()
medium_arr_dept_marketing.length.toString()
high_arr_dept_marketing.length.toString()

// For creating this:
const data = [
{name: 'Marketing', Low: low_arr_dept_marketing.length, Medium: medium_arr_dept_marketing.length, High: high_arr_dept_marketing.length},
{name: 'Sales', Low: low_arr_dept_sales.length, Medium: medium_arr_dept_sales.length, High: high_arr_dept_sales.length},
{name: 'RD'Low: low_arr_dept_rd.length, Medium: medium_arr_dept_rd.length, High: high_arr_dept_rd.length},
...
];

最佳答案

可能不是最好的方法,虽然代码很短,但我根据你说的你需要的东西得到了你需要的东西。检查一下。

var data = { 
data: {
department: [
{
"Marketing": [
{ "employee_1": "1210" },
{ "employee_2": "241" },
{ "employee_3": "6510" },
{ "employee_4": "9510" }

]
},
{
"Sales": [
{ "employee_1": "5210" },
{ "employee_2": "1241" },
{ "employee_3": "8510" },
{ "employee_4": "2510" }
]
},
{
"RD": [
{ "employee_1": "1010" },
{ "employee_2": "9241" },
{ "employee_3": "9430" },
{ "employee_4": "3510" }
]
}
]
}
};

var new_data = data.data.department.map(function(el, ind) {
var item = {low: 0, medium: 0, high: 0};
// set the name of department for new array
for(var prop in el) item.name = prop;
// go and check ids increasing counters
for(var i = 0; i < el[prop].length; i++) for(var prop2 in el[prop][i]) if(el[prop][i][prop2] < 2000) item.low++; else if(el[prop][i][prop2] >= 5000) item.high++; else item.medium++; return item;
});

console.log(new_data);

关于javascript - JS 将嵌套对象转换为对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45369157/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com