【发布时间】:2022-01-01 05:27:09
【问题描述】:
对不起,如果标题不清楚,请提前说明,但很难用语言来描述。
我有什么:
const obj = {
a: 5,
b: 3,
c: 0,
d: 9
}
我想拥有什么:
const arr = [[a, 5] ,[b, 3]]
基本上,我尝试编写一个返回条目数组的函数,但它太符合要求:
- 当值等于 0 时不想要对象
- 值的总和必须小于 10
第一点对我来说很容易,我可以做到
Object.entries(obj).filter(([k, v])=> v !== 0)
但我无法处理第二个。
我可以在这里使用reduce 吗?
【问题讨论】:
-
有点不清楚:如果总和大于 10 会发生什么?
-
为什么不
[['d', 9]]? -
如果你有
f: 4怎么办——那也可能产生[["a", 5], ["f", 4]]或[["b", 3], ["f", 4]]?以及如何选择正确的输出? -
另外,
{ a: 5, b: 9, c: 0, d: 3 }的预期输出是什么 - 它是[["a", 5], ["d", 3]]或[["a", 5]]? -
如果你有
e: 1怎么办?它应该添加到结果集中吗?
标签: javascript arrays filter reduce