각 축소 작업에 대한 상호 작용 수를 계산합니다.
P粉191323236
2023-08-14 17:21:30
<p>다음과 같은 개체 목록이 있습니다.</p>
<pre class="brush:php;toolbar:false;">const UsageCosts = {
224910186407: {
장치 ID: "224910186407",
통화: "GBP",
연간 사용량: 1480.81
},
224910464538: {
장치 ID: "224910464538",
통화: "GBP",
연간 사용량: 617.36
},
224910464577: {
장치 ID: "224910464577",
통화: "EUR",
연간 사용량: 522.3
}
}</pre>
<p>다음과 같이 통화별로 합계를 계산합니다. </p>
<pre class="brush:php;toolbar:false;">const totalYearlyCost = Object.values(usageCosts).reduce(
(acc: { [키: 문자열]: 임의 }, 통계: 임의) =>
if (stat.currency && !acc[stat.currency]) {
acc[stat.currency] = 0
}
반품 {
...acc,
[stat.currency!]: acc[stat.currency!] + stat.yearlyUsage,
}
},
{},
)</pre>
<p>다음과 같이 개체를 반환합니다. </p>
<pre class="brush:php;toolbar:false;">{
유로: 522.3
GBP: 2,098.17
}</pre>
<p>또한 다음과 같이 통화당 총 기기 수를 반환하고 싶습니다. </p>
<pre class="brush:php;toolbar:false;">{
EUR: 522.3(1개 장치)
GBP: 2,098.17(2개 장치)
}</pre>
<p>다른 루프를 추가해 보았으나 결과가 예상과 달랐습니다. </p>
이 작업을 두 부분으로 나누면 더 쉬울 것입니다.
먼저
reduce
그룹화된 값을 포함하는 배열로 변환합니다.그런 다음 객체를 반복하고(reduce를 사용할 수도 있음) 배열의 합계 를 구하고 문자열에
${array.length} devices
를 추가합니다.