如何解决如何将表格的行分组按“数量”单元格?
我认为这是一个普遍的问题,但是我不知道有任何明显的解决方案。
我有一张要订购的物品表(即销售清单)。该表中的列之一是“数量”。是否有一个工具(库或其他工具)可以自动对记录(行)本身进行分组,并增加单元格的“数量”?
简而言之,我希望表格将其转换(行ID,名称,价格):
3,Red ball,3 pieces,$ 5
3,$ 5
Red ball,$ 5
问题的详细信息如下... 我为什么需要这个? 我将表的每个位置(行)存储在服务器上。但是由于“数量”列,我必须在新模型中创建新记录,在该模型中,我为每个项目创建重复记录。 例如,字符串(名称,数量,价格):
Red ball,$ 5
3,$ 5
这样做是为了能够使用这些记录(例如,计算它们的数量,链接到其他记录等)。但是所有内容都会破坏“ Quantity”列,如果不存在,那么我就不必在应用程序的不同模型中重复任何内容,我只需要显示相同的记录,并且已经“有些ADDON / LIB / PLUGIN / SNIPPET其中“我问你”将显示一个表格,并将相同的行自动分组为一个行,并在客户端(JS)的“数量”列中对其进行计数。原谅我描述我的问题,我认为问题的第一部分就足够了...
我目前正在使用TABULATOR(JS)表,这是一个非常酷的工具,但是我没有在其中找到这样的内置函数...
服务器中的数据格式:
var tabledata = [
{
order_item_id:6,name:'red ball',price:5,},{
order_item_id:7,{
order_item_id:8,]
解决方法
const tabledata = [{
order_item_id: 5,name: 'blue ball',price: 3,},{
order_item_id: 6,name: 'red ball',price: 5,{
order_item_id: 7,{
order_item_id: 8,{
order_item_id: 9,{
order_item_id: 10,{
order_item_id: 11,{
order_item_id: 12,name: 'yellow ball',price: 15,}]
const grouped = tabledata.reduce((acc,item) => {
/*
* check whether the accumulator already contains a product with the same name
* (if it does,return its index otherwise return -1)
*/
const index = acc.findIndex(_item => _item.name === item.name);
if (index > -1) {
/*
* if the product is already present,increase its quantity by 1
*/
acc[index].quantity = acc[index].quantity + 1;
} else {
/*
* if the product is not present,add it to the accumulator array
*/
acc.push({
name: item.name,unit_price: item.price,quantity: 1
});
}
return acc;
},[]);
console.log('### TABLEDATA:\n',tabledata);
console.log('### GROUPED:\n',grouped);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。