【发布时间】:2021-05-14 08:40:55
【问题描述】:
如何在 JavaScript 方法中先填充标题然后再填充行? 我无法控制这些数据,这就是我试图弄清楚如何控制的原因。
我有这些数据:
const list = [{
'name': 'Display',
'group': 'Technical details',
'id': '60',
'value': 'Something'
},
{
'name': 'Manufacturer',
'group': 'Manufacturer',
'id': '58',
'value': 'Apple'
},
{
'name': 'OS',
'group': 'Technical details',
'id': '37',
'value': 'Apple iOS'
}
];
有了上面的数据,我想在下面实现这个输出:
<div class="heading">
<div>Technical details</div>
<div class="container">
<div class="row grid">
<div class="grid-item">
<div>Display</div>
<div>Something</div>
</div>
<div class="grid-item">
<div>OS</div>
<div>Apple iOS</div>
</div>
</div>
</div>
</div>
<div class="heading">
<div>Manufacturer</div>
<div class="container">
<div class="row grid">
<div class="grid-item">
<div>Manu</div>
<div>Apple</div>
</div>
</div>
</div>
</div>
总结问题:我只想先显示标题,然后显示具有相同组值的行。
这是我需要帮助的代码:
function groupBy(collection, property) {
var i = 0, val, index,
values = [], result = [];
for (; i < collection.length; i++) {
val = collection[i][property];
index = values.indexOf(val);
if (index > -1) {
result[index].push(collection[i]);
}
else {
values.push(val);
result.push([collection[i]]);
}
}
return result;
}
var obj = groupBy(list, "group");
【问题讨论】:
-
您是否可以控制
list中包含的数据格式?最好更改该数据结构以更适合您的需求。另外,请将您编写的JS代码添加到问题中,以便我们帮助您调试它。请记住,SO 不是来为您编写代码的。 -
我已经更新了我的问题。
标签: javascript html jquery for-loop