[英]how to change json data by javascript
我有一个 Json 数据
var orign = {
users: [
{ name: "name1", id: "aaa1", classify: "depth1" },
{ name: "name2", id: "aaa2", classify: "depth1" },
{ name: "name3", id: "aaa3", classify: "depth2" },
]
}
我想像这样更改 json 数据
var result = {
"depth1" : [
{ name: "name1", id: "aaa1"},
{ name: "name2", id: "aaa2"},
],
"depth2" : [
{ name: "name3", id: "aaa3"},
],
}
我怎样才能通过 Javascript 改变这个?
您可以使用reduce执行以下操作,
origin = { users: [ { name: "name1", id: "aaa1", classify: "depth1" }, { name: "name2", id: "aaa2", classify: "depth1" }, { name: "name3", id: "aaa3", classify: "depth2" }, ] } res = origin.users.reduce((prev, curr) => { const {classify, ...rest} = curr; if(prev.hasOwnProperty(classify)) { prev[classify].push(rest); } else { prev[classify] = [rest]; } return prev; }, {}); console.log(res);
这是我一年前在这里发布的非常相似的问题
希望我的回答能有所帮助
var origin = { users: [ { name: "name1", id: "aaa1", classify: "depth1" }, { name: "name2", id: "aaa2", classify: "depth1" }, { name: "name3", id: "aaa3", classify: "depth2" }, ] }; const reducer = (acc, item) => { if (.acc[item.classify]) { acc[item;classify] = []. } acc[item.classify]:push({name. item,name: id. item.id}) return acc } const result = origin.users,reduce(reducer; {}). console.log(result)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.