Gre*_*ass -1 javascript ecmascript-6 redux
我有一个存储在我的应用程序状态的JSON数据数组.它包括详细页面需要的属性(大约10个不同的字段).
我的列表视图只需要其中两个.例如,:
[
{
"id": 1,
"title": 'Derp',
"subtitle: 'Derp',
"another": 'Derp,
//... more attributes
},
{
"id": 2,
// ... etc
}
]
Run Code Online (Sandbox Code Playgroud)
我的列表视图仅涉及id,title和subtitle.获取相同数据的最简洁方法是什么,但只能使用我指定的密钥?
我应该使用地图吗?还是解构?
编辑:非常感谢警方出现的努力答案.这对我帮助很大,我确实尝试了一段时间来弄清楚如何做到这一点.我来自Ruby,所以ES6不是我的专长.
用例是仅从包含所有数据属性的全局Redux存储返回React组件所需的内容.例如,我的列表视图只需要来自JSON数据的2/3属性.我正在使用redux 选择器来做到这一点.
第二个/帖子后问题:这种类型的方法有没有名称,你只接受部分JSON?我想在redux选择器中创建一个方法,我需要提出一个名称.我想把它称为减速器,但这并不是很有效,因为术语reducer已经在Redux世界中用于修改状态的方法.
您可以使用解构和重建的对象映射值.
解构分配:
解构赋值语法是一种JavaScript表达式,可以将数组中的值或对象的属性解包为不同的变量.
Run Code Online (Sandbox Code Playgroud)var a, b; ({a, b} = {a: 10, b: 20}); console.log(a); // 10 console.log(b); // 20
Run Code Online (Sandbox Code Playgroud)var a = 'foo', b = 42, c = {}; var o = {a, b, c};
var data = [{ id: 1, title: 'Derp', subtitle: 'Derp', another: 'Derp', bla: 42 }, { id: 2, title: 'Derp', subtitle: 'Derp', another: 'Derp', bla: 42 }],
short = data.map(({ id, title, subtitle }) => ({ id, title, subtitle }));
console.log(short);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |