创建具有相同字段的对象的简写

时间:2017-05-02 21:51:01

标签: javascript ecmascript-6

const json = {
  a: 1,
  b: 2,
  c: "HI"
}

有没有办法将{a : 1}传入函数?

var someReturn = aOnly({a : json.a});

我不确定ES6的解构/构造是否解决了这个问题。在阅读了几个ES6解构示例后,我似乎无法找到正确的语法。

修改 代码没什么问题,我只是在询问是否有一种语法只能从JSON中提取“a”而不需要多余地执行

{a : json.a }

aOnly函数的实现不是这里的重点

2 个答案:

答案 0 :(得分:2)

您可以对作为参数传递的对象使用ES6对象解构来选择特定属性。

const json = {
  a: 1,
  b: 2,
  c: "HI"
}

function aOnly({a}) {
  return a;
}

var someReturn = aOnly(json);
console.log(someReturn)

答案 1 :(得分:0)

谢谢,我已经找到了正确的语法。我最初的错误是尝试使用{ json.a }直接构造,希望这会自动变为{ a : json.a},但正确的方法是先破坏并稍后构建。

var json = {
    a : "ASDF",
    b : 123,
    c : "Test"
 };
 
const {a, b, c} = json; // destructing

var aObject = aOnly({a}); // constructing
var bObject = bOnly({b});
var cObject = cOnly({c});

console.log (aObject);
console.log (bObject);
console.log (cObject);

function aOnly(a) { return a; }
function bOnly(b) { return b; }
function cOnly(c) { return c; }