我从对象和对象数组中更改了一个对象两次,这样在第一次迭代中,我过滤掉了几个对象,在第二次迭代中,我使用map更改了每个过滤后的对象。我能用减速机或更好的吗?
const originalTree = html.parse(text);
if (originalTree[0].type === 'text') {
return text;
}
const result = originalTree
.map((obj) => ({
...obj,
children: obj.children.filter((el) => el.name !== 'style'),
}))
.map((obj) => ({
...obj,
children: obj.children.map(function(child) {
child.attrs = {};
return child;
}),
}));
return html.stringify(result);
}
这里有一种方法可以循环使用一个originalTree。map()
,也简化了孩子的。过滤器()。映射()
链到子对象。flatMap()
调用:
const result = originalTree.map(
obj => ({
...obj,
children: obj.children.flatMap(
el => el.name !== 'style'
? [{ ...el, attrs: {} }]
: []
)
})
);
如果你想继续在obj.children
上分别使用Filter()
和map()
,我建议至少添加attrs
而不是修改现有的引用:
const result = originalTree.map(
obj => ({
...obj,
children: obj.children.filter(
el => el.name !== 'style'
).map(
child => ({ ...child, attrs: {} })
)
})
);
以下是我在URL中读到的优势:有角度的承诺和可观察的 承诺: 返回单个值 未取消 包含try/catch和async/await的更多可读代码 可观测的 随时间使用多个值 可取消 支持map、filter、reduce和类似运算符 使用反应扩展(rxj) 项随时间异步到达的数组 在observable中,我看到3&4点支持操作符和RXJ。我只是有一个基本的问题,比如我不能使用RXJS和有承诺的操作
,和在Python 2中完美工作。这里有一个例子: 但是在Python 3中,我收到以下输出: 如果有人能向我解释这是为什么,我将不胜感激。 为进一步清晰起见,代码截图:
我有一个简单的流如下: 但Intellij建议我: “filter()”和“map()”可以互换。检查信息:报告流API调用链可以简化。它允许在遍历集合时避免创建冗余的临时对象。例如 collection.stream()→collection.for每个() collection.stream()。 Intellij给出的例子很容易理解,但我不明白为什么它建议我使用。 我查看了的来源,但没有找到
我有一个包含映射属性的json字符串,如 当Jackson将其反序列化到包含an属性的类中时,它似乎执行了。而在序列化时,它将把对象序列化为相同的格式。 是否有一种方法让jackson正确反序列化到一个只有注解的映射中,或者我需要做一个自定义序列化器。 带有getter/setter的示例对象:
我想把这个列表收集到两张地图中(如果可能的话,也可以在一张地图中) 一个映射应该将映射到用户玩过的游戏数量--基本上是具有状态的游戏 另一个映射应该将存储到所有游戏计数。它看起来像这样 有没有一种方法可以在块内实现,而不是使用?
问题是,如果我执行上述^,以访问endpoint上的请求信息,则如果筛选器验证失败,我就不能再中止筛选器中的请求,因为我会得到以下错误: 似乎如果您在Jerseyendpoint上定义任何类型的参数,这些参数可以在ContainerRequestContext中访问,那么它将不允许您中止过滤器中的过滤器链。 一个解决方法(我还没有尝试过,但假设会成功)是这样做:如果过滤器验证失败,我可以只向请求添