我有這樣的 JSON 我需要將這個 JSON 與 JSON 物件中的所有鍵和值應該在陣列中(不包括重復項)分組。
var people = [
{sex:"Male", name:"Jeff"},
{sex:"Female", name:"Megan"},
{sex:"Male", name:"Taylor"},
{sex:"Female", name:"Madison"}
];
我的輸出應該像
{"sex":["Male","Female"],"name":["Jeff","Megan","Taylor","Madison"]}
我們如何能夠實作這一目標
uj5u.com熱心網友回復:
function getValues(array) {
var result = {};
array.forEach(obj => {
Object.keys(obj).forEach(key => {
if(!Array.isArray(result[key]))
result[key] = [];
result[key].push(obj[key]);
})
})
return result;
}
uj5u.com熱心網友回復:
您可以使用該Array.reduce()方法將陣列轉換為單個物件:
var people = [
{sex:"Male", name:"Jeff"},
{sex:"Female", name:"Megan"},
{sex:"Male", name:"Taylor"},
{sex:"Female", name:"Madison"}
];
const transformed = people.reduce((acc, e) => {
Object.keys(e).forEach((k) => {
if (!acc[k]) acc[k] = [];
if (!acc[k].includes(e[k])) acc[k].push(e[k]);
});
return acc;
}, {});
console.log(transformed);
如果物件鍵之一(在本例中為性別或名稱)的值陣列不存在,則創建它。在將值推入任何值陣列之前,會驗證它是否已存在于該陣列中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/338607.html
標籤:javascript 查询 数组 json
