Javascript JS-相应地过滤JSON

Javascript JS-相应地过滤JSON,javascript,arrays,object,Javascript,Arrays,Object,我的意见是: [ {Value: "My_name", Status: "Done"}, {Value: "My_lastName", Status: "Not_Done"} ] 预计的O/p为: { Value: ["My_name", "My_lastName"] Status: ["Done", "Not_Done"] } 您可以使用reduce方法实现这一点: var data=[{Tag:“我的名字”,Clearance:“完成”},{Tag:“我的姓”,Clea

我的意见是:

[
  {Value: "My_name", Status: "Done"},
  {Value: "My_lastName", Status: "Not_Done"}
]
预计的O/p为:

{
  Value: ["My_name", "My_lastName"]
  Status: ["Done", "Not_Done"]
}

您可以使用
reduce
方法实现这一点:

var data=[{Tag:“我的名字”,Clearance:“完成”},{Tag:“我的姓”,Clearance:“没有完成”}];
结果=数据减少((acc,elem)=>{
Object.entries(elem.forEach)([k,v])=>{
acc[k]=acc[k]| |[];
acc[k]。推力(v);
})
返回acc;
},{});

console.log(result)
您可以执行以下操作:

let input = [
    {Tag: "My_name", Clearance: "Done"},
    {Tag: "My_lastName", Clearance: "Not_Done"}
];
let output = {};

input.forEach((inputObj) => {
    Object.keys(inputObj).forEach((key) => {
        output[key] = output[key] || [];
        output[key].push(inputObj[key]);
    });
});

您可以使用方法
Object.entries
填充数组,然后只需使用
reduce
方法填充数组:

const arrayOfEntries = data.flatMap(s => (Object.entries(s)));
const result = arrayOfEntries.reduce((a, [k, v]) => 
    (a[k] = a[k] || [], a[k].push(v), a), {})
例如:

const data=[{Tag:“我的名字”,Clearance:“完成”},
{标记:“我的姓”,清除:“未完成”};
const arrayOfEntries=data.flatMap(s=>(Object.entries));
const result=arrayOfEntries.reduce((a[k,v])=>
(a[k]=a[k]| |[],a[k]。推(v),a),{})

console.log(result)
绝对不清楚您想要什么问题是什么?请参阅,请编辑您的问题,并尽量清晰和描述性。这很有效,谢谢@Pats2281欢迎,如果这解决了您的问题,您可以接受这一回答。谢谢