我正在尝试创建一个简单的工资计算器应用程序,该应用程序接受输入{name:'',contact:'',designation:''},然后求和{name:''}的输入数量。然后将所得的总数与常数{wages = 2,500}相乘,得出最终的总数。
我已经编写了接受和显示新输入的代码,然后将此新输入添加到现有状态。但是我不知道该怎么做,仅将名称属性加起来,然后乘以一个常数值。
class Test extends Component {
constructor(props){
super(props);
this.state={
wages:0,
totalWages: 0,
workers:[
{
id:uuid(),
name:'James',
contact:'08087453758',
Desig:'Carpenter'
},
{
id:uuid(),
name:'Eric',
contact:'08145653605',
Designation:'Carpenter'
}
]
}
}
render() {
const{workers}=this.state;
return (
<Container>
<Button
style={{marginBottom:'2rem'}}
color='dark'
onClick={()=>{
const name=prompt('Enter the name of a new worker');
if(name){
this.setState(state=>({ workers:[...state.workers, {id:uuid(),name}]}))
}
}}
>
Add Worker
</Button>
<ListGroup>
{workers.map(({id,name})=>(
<CSSTransition
key={id}
timeout={500}
>
<ListGroupItem>
{name}
</ListGroupItem>
</CSSTransition>
)
)}
</ListGroup>
</Container>
)
}
}
我需要输入的总和,与更新状态一起显示
答案 0 :(得分:0)
要获取名称总数,请使用reduce
方法
workers.reduce((a, b) => ({names: a.name + b.name}));
答案 1 :(得分:0)
让我们假设以下数组:
const items = [
{id: 1, value: 23},
{id: 2, value: 45},
{id: 3, value: 60}
]
要汇总所有value
个属性,然后乘以2500
:
const items = [
{id: 1, value: 23},
{id: 2, value: 45},
{id: 3, value: 60}
]
const total = items.map(x => x.value).reduce((a,c) => a + c) * 2500
console.log(total) // (23 + 45 + 60) * 2500 => 128 * 2500 => 320000