在Immutable.js映射中查找嵌套对象的最佳方法
best way to find nested object in Immutable.js Map
我有一个不可变映射结构,它将presentationId映射到幻灯片Id映射到具有幻灯片属性的映射,其中"打开",如下所示:
//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
会更好,因为您不需要将找到的对象解析为布尔值,它已经被解析了。
const openSlide = map.reduce((acc, slideMap) => {
return acc || slideMap.some(slide => {
return parseInt(slide.get('opened')) === 1
})
}, false)
相关文章:
- 解析以下对象的最佳方式
- Javascript,用vars创建对象的最佳方法
- Javascript.连接两组对象的最佳方式,如SQL
- 返回多个变量的 JavaScript 函数:数组与对象.最佳实践是什么
- 在对象类上实现 jquery 作用域的最佳方法
- 在下划线.js中扩展对象的最佳实践
- Javascript:从数组中删除包含带有侦听器的对象的项目的最佳方法
- 什么'是使输入上禁用的属性与Meteor辅助对象反应的最佳方法
- Angular:将对象存储在服务中以在视图中显示和将crud函数存储到服务器的最佳方式是什么
- 检查链接对象形式中未定义属性的最佳实践是什么
- 用JavaScript编写对象方法的最佳方式是什么
- 迭代JSON对象并将元素打印到屏幕上的最佳方式是什么
- React是装载前处理空对象的最佳方式
- 对对象数组进行分组和排序的最佳方式
- 传单JS面向对象的最佳方法
- 将特性插入到角度控制器中阵列中的对象中的最佳方式
- 创建javascript对象的最佳方式
- 什么'It是声明对象的最佳方式
- 创建 JavaScript 对象最佳实践
- jQuery/JS -在数组中输出对象-最佳实践