javascript - 在 Javascript 中返回一个元组
问题描述
我有一组具有最大和最小高度的口袋妖怪对象(见下面的快照),我需要以元组的形式返回所有口袋妖怪的平均最小和最大高度
const allPokemon = [
{
Height: {
Minimum: '0.61m',
Maximum: '0.79m',
},
},
];
我需要使用 HOF,所以我想为最大和最小高度做这样的事情:
allPokemon.reduce((acc, cur) => acc + parseInt(cur.Height.Maximum), 0) / allPokemon.length;
allPokemon.reduce((acc, cur) => acc + parseInt(cur.Height.Minimum), 0) / allPokemon.length;
但我不确定如何以元组的形式返回这两个值(创建空数组并将值推入?Concat 方法?)
任何帮助将非常感激。
解决方案
目前,JavaScript 没有元组。此外,Javascript 是弱类型的
弱类型意味着编译器(如果适用)不强制执行正确的类型。如果没有隐式编译器插入,指令将在运行时出错。
但是,使用object
orarray destructuring
您可以将其存档
- 您可以使用
.reduce
初始数据来聚合您的数据,如下所示object
:{ Maximum: 0, Minimum: 0 }
const allPokemon = [
{
Height: {
Minimum: "1.61m",
Maximum: "2.79m"
}
}]
var result = allPokemon.reduce((acc, cur) => {
acc.Maximum += (parseFloat(cur.Height.Maximum)/allPokemon.length);
acc.Minimum += (parseFloat(cur.Height.Minimum)/allPokemon.length);
return acc;
}, { Maximum: 0, Minimum: 0 });
console.log(result);
- 第二种方法是这样使用
array
thendestructuring assignment
const allPokemon = [
{
Height: {
Minimum: "1.61m",
Maximum: "2.79m"
}
}]
var result = allPokemon.reduce((acc, cur) => {
acc[0] += (parseFloat(cur.Height.Maximum)/allPokemon.length);
acc[1] += (parseFloat(cur.Height.Minimum)/allPokemon.length);
return acc;
}, [0, 0]);
console.log(result);
// Array Destructuring here
const [Maximum, Minimum] = result;
console.log("Maximum: " + Maximum);
console.log("Minimum: " + Minimum);
例如:
const [a, b] = [10, 20]; // a = 10, b= 20
注意:正如@VLAZ 的评论,在不久的将来我们会有适当的tuples
和records
喜欢这个的proposal-record-tuple
推荐阅读
- c# - 具有逻辑和使用导航属性的 EF Core NotMapped Getter - 分离实体不支持延迟加载
- linux - linux内核恐慌无法处理内核NULL指针取消引用
- highcharts - 图例在向下钻取饼图中重叠
- c# - 如何正确使用 C# 8.0 switch case
- angular - 如何通过Angular中的按钮触发键盘快捷键
- python - 将 PHP 功能添加到 Docker Compose Python/Flask 容器
- python - Django 模型无法识别 MarkdownxFormField 字段
- python - 如何在数据框中执行之前的计算
- java - Mockito 的奇怪错误。when(repository.findById(any(Long.class))).thenReturn(Optional.of(user)) 返回 null
- azure-functions - 创建 azure 函数应用程序后如何更改运行时堆栈