循环分组求和,list中有多条数据,第一条与其余几条依次对比,若付款银行与下拨银行都相同的数据则合并金额,第二条与第三四条对比合并,以此类推,使用前端react代码生成
时间: 2024-04-09 21:28:24 浏览: 127
用于处理数据,求两个集合的交集、并集、补集。附源码。
你可以使用以下代码实现前端React组件中的循环分组求和功能:
```jsx
import React from 'react';
class GroupSum extends React.Component {
constructor(props) {
super(props);
this.state = {
data: [
{ id: 1, paymentBank: 'A', disbursalBank: 'A', amount: 100 },
{ id: 2, paymentBank: 'B', disbursalBank: 'A', amount: 200 },
{ id: 3, paymentBank: 'A', disbursalBank: 'B', amount: 300 },
{ id: 4, paymentBank: 'B', disbursalBank: 'B', amount: 400 },
],
groupedData: [],
};
}
componentDidMount() {
this.groupData();
}
groupData = () => {
const { data } = this.state;
const groupedData = [];
for (let i = 0; i < data.length; i++) {
const currentData = data[i];
let merged = false;
for (let j = i + 1; j < data.length; j++) {
const nextData = data[j];
if (
currentData.paymentBank === nextData.paymentBank &&
currentData.disbursalBank === nextData.disbursalBank
) {
currentData.amount += nextData.amount;
merged = true;
}
}
if (!merged) {
groupedData.push(currentData);
}
}
this.setState({ groupedData });
};
render() {
const { groupedData } = this.state;
return (
<div>
<h2>Grouped Data:</h2>
<ul>
{groupedData.map((item) => (
<li key={item.id}>
{item.paymentBank} - {item.disbursalBank}: {item.amount}
</li>
))}
</ul>
</div>
);
}
}
export default GroupSum;
```
上述代码中,我们使用了React的类组件`GroupSum`来展示分组求和的功能。在`constructor`中,我们初始化了包含多条数据的`data`数组,每条数据都有`id`、`paymentBank`、`disbursalBank`和`amount`属性。我们还定义了一个空数组`groupedData`来存储分组求和后的数据。
在`componentDidMount`生命周期方法中,我们调用了`groupData`方法来进行循环分组求和操作。该方法使用了两个嵌套的`for`循环来对比数据并合并金额。最后,将未合并的数据添加到`groupedData`数组中,并通过`setState`更新组件的状态。
在`render`方法中,我们通过遍历`groupedData`数组来展示分组求和后的数据。每个数据项都以列表项的形式显示。
你可以在你的React应用程序中使用这个组件来实现循环分组求和的功能。记得根据你的实际需求修改数据和样式。
阅读全文