查找列表组的金额总和

我是 Reactjs 新手。


我有以下数据


Name        Amount


Poorna     11000.00


Kumar       2900.00


Ashok       20000.00


Kumar      3020.00


Poorna     15000.00

输出应如下所示


Name        Amount


Poorna     26000.00


Kumar       5920.00


Ashok       20000.00 

请帮我。


LEATH
浏览 101回答 5
5回答

富国沪深

使用Array.reduce()var sample= [   {  Name: 'Poorna', Amount: 50},   {  Name: 'Kumar', Amount: 50},   {  Name: 'Ashok ', Amount: 75},   {  Name: 'Poorna', Amount: 35},   ];var res = sample.reduce((a, obj)=>{  var existItem = a.find(item => item.Name=== obj.Name);  if(existItem){    existItem.Amount += obj.Amount;    return a;  }   a.push(obj);  return a;}, []);console.log(res);

慕码人2483693

您可以使用地图来做到这一点:import React from "react";export default function App() {&nbsp; const list = [&nbsp; &nbsp; { name: 'Poorna', amount: 11000 },&nbsp; &nbsp; { name: 'Kumar', amount: 2900 },&nbsp; &nbsp; { name: 'Ashok', amount: 20000 },&nbsp; &nbsp; { name: 'Kumar', amount: 3020 },&nbsp; &nbsp; { name: 'Poorna', amount: 15000 }&nbsp; ];&nbsp; const map = new Map();&nbsp; list.forEach(({ name, amount }) =>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;map.set(name, map.has(name) ? map.get(name) + amount : amount));&nbsp; const listItems = [...map.entries()].map(([name, amount]) => <li>{name}: {amount}</li>);&nbsp; return <ul>{listItems}</ul>;}

繁星淼淼

我认为下面是最好的方法。const data = [&nbsp; &nbsp;{&nbsp; Name: 'Poorna', Amount: 11000 },&nbsp; &nbsp;{&nbsp; Name: 'Kumar', Amount: 2900 },&nbsp; &nbsp;{&nbsp; Name: 'Ashok', Amount: 20000 },&nbsp; &nbsp;{&nbsp; Name: 'Kumar', Amount: 3020 },&nbsp; &nbsp;{&nbsp; Name: 'Poorna', Amount: 15000 },];const result = data.reduce((prev, { Name, Amount }) => {&nbsp; if (prev[Name]) return {...prev, [Name]: prev[Name] + Amount};&nbsp; return {...prev, [Name]: Amount};}, {});

慕桂英546537

这是根据名称对数据进行分组的方法:let data = [&nbsp; {name: "Poorna", salary:11000.0},&nbsp; {name: "Kumar",salary: 2900.0},&nbsp; {name: "Ashok", salary:20000.0},&nbsp; {name: "Kumar", salary:3020.0},&nbsp; {name: "Poorna", salary:15000.0},];let sol = {};for (let a of data) {&nbsp; if (sol[a.name]) {sol[a.name] += a.salary;&nbsp; } else {sol[a.name] = a.salary;&nbsp; }}console.log(sol);这是完整的反应应用程序:import React, { useState, useEffect } from "react";import "./style.css";let data = [&nbsp; { name: "Poorna", salary: 11000.0 },&nbsp; { name: "Kumar", salary: 2900.0 },&nbsp; { name: "Ashok", salary: 20000.0 },&nbsp; { name: "Kumar", salary: 3020.0 },&nbsp; { name: "Poorna", salary: 15000.0 }];export default function App() {&nbsp; const [initialData, setInitialData] = useState(data);&nbsp; const [group, setGroup] = useState([]);&nbsp; const groupData = () => {&nbsp; &nbsp; let sol = {};&nbsp; &nbsp; for (let a of initialData) {&nbsp; &nbsp; &nbsp; if (sol[a.name]) {&nbsp; &nbsp; &nbsp; &nbsp; sol[a.name] += a.salary;&nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; sol[a.name] = a.salary;&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; setGroup(sol);&nbsp; };&nbsp; useEffect(() => {&nbsp; &nbsp; groupData();&nbsp; }, []);&nbsp; return (&nbsp; &nbsp; <div>&nbsp; &nbsp; &nbsp; <table>&nbsp; &nbsp; &nbsp; &nbsp; <tr>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {" "}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th>Name</th>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th>Amount</th>&nbsp; &nbsp; &nbsp; &nbsp; </tr>&nbsp; &nbsp; &nbsp; &nbsp; {initialData.map(d => (&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tr>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {" "}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td>{d.name}</td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td>{d.salary}</td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tr>&nbsp; &nbsp; &nbsp; &nbsp; ))}&nbsp; &nbsp; &nbsp; </table>&nbsp; &nbsp; &nbsp; <h2>Grouped data</h2>&nbsp; &nbsp; &nbsp; <table>&nbsp; &nbsp; &nbsp; &nbsp; <tr>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th>Name</th>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th>Amount</th>&nbsp; &nbsp; &nbsp; &nbsp; </tr>&nbsp; &nbsp; &nbsp; &nbsp; {group &&&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Object.keys(group).map(key => (&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tr>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td>{key}</td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td>{group[key]}</td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tr>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ))}&nbsp; &nbsp; &nbsp; </table>&nbsp; &nbsp; </div>&nbsp; );}您可以在这里找到工作应用程序:Stackblitz Link

九州编程

使用reduce()const array = [{ id: 1, name: 'Poorna', amount: 11000 },&nbsp;{ id: 2, name: 'Kumar', amount: 2900},&nbsp;{ id: 3,&nbsp; name: 'Ashok', amount: 20000},{ id: 3,&nbsp; name: 'Kumar', amount: 3020},{ id: 3,&nbsp; name: 'Poorna', amount: 15000}];&nbsp; &nbsp;&nbsp;&nbsp;let output = Object.values(array.reduce((acc, curr) => {&nbsp; &nbsp; &nbsp;if (acc[curr.name]) acc[curr.name].amount += curr.amount;&nbsp; &nbsp; &nbsp;else acc[curr.name] = { ...curr };&nbsp; &nbsp; &nbsp;return acc;&nbsp; &nbsp; }, {}));console.log(output);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript