【发布时间】:2022-02-14 14:46:36
【问题描述】:
在打字稿中,我有两个具有匹配键的对象,值的类型为number[][],例如:
const A = {
"X": [ [100, 20], [200, 35], [300, 30] ],
"Y": [ [400, 20], [500, 15], [600, 25] ],
"Z": [ [700, 30], [800, 35], [900, 40] ]
}
const B = {
"X": [ [100, 2], [200, 3], [300, 2] ],
"Y": [ [400, 1], [500, 3], [600, 2] ],
"Z": [ [700, 3], [800, 3], [900, 2], [1000, 4 ]
}
我想要一个函数,它能够匹配每个对象中的键,根据内部数组中的第一个条目合并值,然后最后对数组中的第二个条目执行操作,例如将值相乘。
所需的输出将是与 A 和 B 格式相同的第三个对象,如下所示:
C = A * B
const C = {
"X": [ [100, 40], [200, 105], [300, 60] ],
"Y": [ [400, 20], [500, 45], [600, 50] ],
"Z": [ [700, 90], [800, 105], [900, 160] ]
}
注意,由于“1000”的值只出现在B中,所以不包含在C中
这是我目前的尝试:
C = Object.keys(A).reduce((o,key) => ({ ...o, [key]: A.key[1]*B.key[1]}), {})
但是,我收到错误消息“无法读取未定义的属性(读取 '1')”
这里的任何帮助将不胜感激!
【问题讨论】:
-
另外,请注意...用
uppercase命名变量不是idiomatic。通常,type(s) 在Typescript中以这种方式命名。
标签: typescript object key-value