簡體   English   中英

如何通過 javascript 更改 json 數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM