
本文档将指导你如何使用 JavaScript 将具有相同 reference 属性的对象合并成一个对象,并将结果以特定格式展示在 HTML 表格中。我们将使用 reduce() 方法对原始数组进行处理,并最终生成符合要求的表格数据结构,以便在前端页面进行渲染。
数据合并
首先,我们需要将具有相同 reference 值的对象合并。可以使用 reduce() 方法来实现这个功能。
let arr = [{ reference: "A2", sendTo: "USA", item: "sticker", sku: 0921380, quantity: 1},{ reference: "A2", sendTo: "USA", item: "toy", sku: 0921381, quantity: 2}, { reference: "A2", item: "pencil", sku: 0921382, quantity: 2}, { reference: "A3", item: "sticker", sendTo: "USA", sku: 0921380, quantity: 2}];let result = arr.reduce((previousValue, currentValue) => { let exists = previousValue.find(i => i.reference === currentValue.reference); if (exists) { exists.item += ', ' + currentValue.item; exists.sku += ', ' + currentValue.sku; exists.quantity += ', ' + currentValue.quantity; } else { previousValue.push(currentValue); } return previousValue;}, []);console.log(result);
这段代码的核心是 reduce 函数。它遍历原始数组 arr,并根据 reference 属性将具有相同 reference 值的对象合并。如果 previousValue 中已经存在具有相同 reference 值的对象,则将当前对象的 item、sku 和 quantity 属性追加到已存在对象的对应属性中;否则,将当前对象直接添加到 previousValue 中。
生成 HTML 表格
接下来,我们需要将合并后的数据转换成 HTML 表格。这里提供一个通用的 JavaScript 函数,可以将数据渲染成表格字符串:
立即学习“Java免费学习笔记(深入)”;
function generateTable(data) { let tableHTML = '| ' + key + ' | '; } tableHTML += '
|---|
| ' + item[key] + ' | '; } tableHTML += '
这段代码首先定义了一个 generateTable 函数,它接受一个数据数组作为参数。函数首先创建一个
元素,然后根据数据的键生成表头
,最后遍历数据数组,生成表体。
注意事项:
上述代码只是一个简单的示例,实际应用中可能需要根据具体需求进行修改。例如,可以添加 CSS 样式来美化表格,或者使用更复杂的 JavaScript 库来生成表格。对于大型数据集,直接操作 DOM 可能会影响性能。可以考虑使用虚拟 DOM 或其他优化技术。代码中使用了 border=”1″ 属性来显示表格边框,实际应用中建议使用 CSS 来控制表格样式。
根据需求定制表格结构
根据题目要求,我们需要生成具有特定结构的表格,即当 reference 值相同时,后续行的 reference 和 sendTo 单元格为空。为了实现这个需求,我们需要对 generateTable 函数进行修改。
function generateCustomTable(data) { let tableHTML = '| reference | sendTo | item | sku | quantity | ||
|---|---|---|---|---|---|---|
| ' + item.reference + ' | '; tableHTML += '' + (item.sendTo || '') + ' | '; //sendTo 可能不存在 lastReference = item.reference; } else { tableHTML += ''; tableHTML += ' | '; } tableHTML += ' | ' + item.item + ' | '; tableHTML += '' + item.sku + ' | '; tableHTML += '' + item.quantity + ' | '; tableHTML += '
这段代码的关键在于使用 lastReference 变量来记录上一个 reference 值。如果当前对象的 reference 值与 lastReference 相同,则将 reference 和 sendTo 单元格设置为空;否则,正常显示 reference 和 sendTo 的值,并更新 lastReference。
总结
本文档介绍了如何使用 JavaScript 将具有相同 reference 属性的对象合并,并将结果以特定格式展示在 HTML 表格中。我们使用了 reduce() 方法来合并数据,并编写了自定义的 generateTable 函数来生成 HTML 表格。通过修改 generateTable 函数,我们可以灵活地定制表格的结构,以满足不同的需求。在实际应用中,可以根据具体情况对代码进行优化和扩展,例如添加 CSS 样式、使用虚拟 DOM 等。
以上就是使用 JavaScript 合并具有相同 ID 的对象并在 HTML 表格中显示的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1575679.html
微信扫一扫
支付宝扫一扫