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欢迎,如果这解决了您的问题,您可以接受这一回答。谢谢