【问题标题】:Destructure arbitrary object property [duplicate]解构任意对象属性
【发布时间】:2019-08-09 07:38:20
【问题描述】:

有没有办法可以将对象解构为任意属性值和其他属性?

到目前为止,我的尝试并没有取得太大的成功:

const x = {a:1, b:2, c:3};
const obj2pieces = (obj,propName) => {
    ({propName,...rest} = obj);
    return [propName, {...rest}]
};
console.log(obj2pieces(x, 'a')); // [undefined,{"a":1,"b":2,"c":3}]

我想得到的是[1,{"b":2,"c":3}]。

【问题讨论】:

  • 使用括号表示法,就像在属性中分配或查找变量时一样。 const {[propName]: val,...rest} = obj; 和return [val, rest](无需传播restthere)

标签: javascript arrays object object-destructuring


【解决方案1】:

您需要computed property name 和提取值的重命名。

const
    x = { a: 1, b: 2, c: 3},
    obj2pieces = (obj, propName) => {
        const {[propName]: temp, ...rest } = obj;
        return [temp, rest]
    };

console.log(obj2pieces(x, 'a'));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 2021-10-26
    相关资源
    最近更新 更多