Javascript 如何以表格格式绑定对象数组?
我想解决这个问题,也许是问题的措辞让我感到复杂。但任务基本上是计算对象数组中所有字符串的实例 我尝试过一些实用的方法,比如filter和reduce,但就是做不好Javascript 如何以表格格式绑定对象数组?,javascript,arrays,algorithm,sorting,functional-programming,Javascript,Arrays,Algorithm,Sorting,Functional Programming,我想解决这个问题,也许是问题的措辞让我感到复杂。但任务基本上是计算对象数组中所有字符串的实例 我尝试过一些实用的方法,比如filter和reduce,但就是做不好 let users = [ { id: 1, name: "Babloo", }, { id: 2, name: "Raam", }, { id: 3, name: "Shyam"
let users = [
{
id: 1,
name: "Babloo",
},
{
id: 2,
name: "Raam",
},
{
id: 3,
name: "Shyam",
},
{
id: 4,
name: "Balraam",
},
{
id: 5,
name: "Sunder",
},
{
id: 6,
name: "Balraam",
},
{
id: 7,
name: "Mahesh",
}
]
// Bind this Array in a tabular format.
我预计产量会有所增加
Name | Repeat Count
Balram | 2
您可以使用Array#reduce
按name
分组。然后像这样使用Object.entries
和Array\map
组合
let users=[{id:1,name:“Babloo”,},{id:2,name:“Raam”,},{id:3,name:“Shyam”,},{id:4,name:“Balraam”,},{id:5,name:“Sunder”,},{id:6,name:“Balraam”,},{id:7,name:“Mahesh”,}];
const groupingData=users.reduce((acc,{name})=>
(acc[名称]=(acc[名称]| | 0)+1,acc),{});
const result=Object.entries(groupingData.map)([key,value])=>
({name:key,Repeat_Count:value}));
控制台日志(结果)代码>考虑使用映射
和数组#过滤器
。
您还可以使用结果创建一个表
const table=document.querySelector(“#table”);
常数
users=[{id:1,name:“Babloo”},{id:2,name:“Raam”},{id:3,name:“Shyam”},{id:4,name:“Balraam”},{id:5,name:“Sunder”},{id:6,name:“Balraam”},{id:7,name:“Mahesh”},
res=Array.from(users.reduce((m,{name})=>(m.set(name,(m.get(name)| | 0)+1),m),newmap());
res.forEach(([名称,计数])=>{
const tr=document.createElement(“tr”);
const tdName=document.createElement(“td”);
const tdCount=document.createElement(“td”);
tdName.innerText=名称;
tdCount.innerText=计数;
tr.appendChild(tdName);
tr.appendChild(tdCount);
表1.儿童(tr);
});
log(JSON.stringify(res))代码>
#表td{
边框:1px纯黑;
}
这是否回答了您的问题?是的。但是我们必须以表格形式呈现的部分呢?这是某种形式的专业术语吗?这取决于你使用的语言。从规范化的数据中,可以根据需要进行迭代@siddhant你能给我解释一下,reduce函数中发生了什么吗?@siddhantreduce
回调将对数组中的每个项运行,在数组中,我们正在增加name
的计数。我已经更新了我的答案,用数据创建了一个表。您可以阅读有关reduce
和Map