JavaScript ES6 - 只采用嵌套JSON数组的某些键/部分的简明方法?

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世界中用于修改状态的方法.

Nin*_*olz 6

您可以使用解构和重建的对象映射值.

解构分配:

解构赋值语法是一种JavaScript表达式,可以将数组中的值或对象的属性解包为不同的变量.

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};
Run Code Online (Sandbox Code Playgroud)

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)