gpt4 book ai didi

javascript - 如何比较两种不同 React 状态下的数组对象

转载 作者:行者123 更新时间:2023-11-30 13:57:11 24 4
gpt4 key购买 nike

我想比较两种不同 React 状态下的对象数组。我的状态值如下所示:

review1 = [{name: John, Title: Manager},{name: Peter, Title: Engineer}, {name: Serena, Title: Supervisor}]
review2 = [{personName: John, ismanager: yes}, {name: Peter, ismanager: no}, {personName: Serena, ismanager: yes},{personName: John, ismanager:yes}]

现在我想统计担任经理的人数。如果是多个,那么计数应该增加。在这种情况下,John 是两个职位的经理,那么 John 的计数是 2,Peter 是 0,Serena 是 1

我正在尝试以下功能,但它没有按预期工作。

let filter = this.state.review1.map(elem=>elem.personName)
count = this.state.review2.map(data=> data.name).reduce((n,x) =>n +(x === filter.personName && data.ismanager === "yes"),null)

<div> John: {ismanger.count}, Serena: {ismanager.count}, Peter: {ismanager.count} </div>

最佳答案

有条件的可以直接算经理。

var review2 = [{ personName: 'John', ismanager: 'yes' }, { personName: 'Peter', ismanager: 'no' }, { personName: 'Serena', ismanager: 'yes' }, { personName: 'John', ismanager: 'yes' }],
count = Array.from(
review2.reduce((m, { personName, ismanager }) => m.set(personName, (m.get(personName) || 0) + (ismanager === 'yes')), new Map),
([name, count]) => ({ name, count })
);

console.log(count);

关于javascript - 如何比较两种不同 React 状态下的数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57021506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com