[英]what is the best way to delete mutiple nested keys from Immutable.js Map
[英]best way to find nested object in Immutable.js Map
我有一个Immutable Map结构,它将presentationId映射到slideId到具有幻灯片属性的地图,其中有'打开',如下所示:
//maps a chapterId to a pageId
var map = Map(fromJS({
123: {
22: {
slideId: 22,
presentationId: 123,
opened: 1
}
23: {
slideId: 23,
presentationId: 123,
opened: 0
}
}
}));
抓取/找到已打开的幻灯片=== 1的最佳方法是什么?
我有这个,这是有效的,但我认为必须有更好/更好的方式与更少的代码行?
var openSlide;
map.some((slideMap, presentationId) => {
openSlide = slideMap.find(slide => {
return parseInt(slide.get('opened')) === 1;
});
return openSlide ? true : false;
});
我认为更好的方法是使用.reduce
,这要归功于你不需要有可变的外部范围,如果涉及可读性,那就更好了。 相反,在这种情况下find
some
会更好,因为你不需要将你找到的对象解析为boolean它已经被解析了。
const openSlide = map.reduce((acc, slideMap) => {
return acc || slideMap.some(slide => {
return parseInt(slide.get('opened')) === 1
})
}, false)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.