max*_*son 1 javascript destructuring ecmascript-6
考虑以下对象:
const obj = {a: 1, b: 2, c: 3, d: 4, e: 5}
Run Code Online (Sandbox Code Playgroud)
是否有一个简单的语法来创建包含以下内容的新对象:
const obj2 = {a, b, d}
Run Code Online (Sandbox Code Playgroud)
我知道有下划线和lodash .pick(),但我希望有一些我可能不知道的解构技巧.
ES2015中的简洁单行是
const obj2 = (({a, b, d}) => ({a, b, d}))(obj);
Run Code Online (Sandbox Code Playgroud)
似乎不可能在{a, b, d}同时保持紧凑的同时避免重言式.
您可以分两步完成:
const obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
var {a, b, d} = obj;
const obj2 = {a, b, d};
Run Code Online (Sandbox Code Playgroud)
如果你不想污染范围,
const obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
const obj2 = {};
{
let {a, b, d} = obj;
Object.assign(obj2, {a, b, d});
}
Run Code Online (Sandbox Code Playgroud)