【问题标题】:Spread all keys except one javascript散布除一个 javascript 之外的所有密钥
【发布时间】:2023-02-26 01:10:18
【问题描述】:

我的数据对象如下所示:

    const data = {
        name: 'John',
        lastName: 'Doe',
        age: '25',
        token: 'askldaskld123klm'
    }

我如何传播除一个以外的所有密钥?

我试过这样做:

    const userData = {
        data.token,
        ...data
    }

但是我从 eslint 得到这个错误。

Parsing error: ',' expected.

【问题讨论】:

  • 除非您删除密钥,否则您不能。传播是全有或全无。见How can I clone a JavaScript object except for one key?
  • 它不是 100% 清楚你想要什么,但如果你想要 userData 是缺少 token 键的同一个对象,那么你想要 const { token, ...userData } = data;
  • 除了哪个键?你对{ data.token, ...data }有什么期待?您可以delete不需要的密钥。
  • 正如 Robin 所建议的那样,您似乎在寻找 rest parameters

标签: javascript typescript eslint


【解决方案1】:

如果你想用新值替换data对象中token属性的值,你需要像这样为data.token值指定一个键

const userData = {
    token: data.token,
    ...data,
};

或者,如果您想从 data 对象中删除 token 属性。您可以使用对象解构来实现这一点。

const {token, ...userData} = data;

这将创建一个名为 userData 的新对象,它包含数据对象中除 token 属性之外的所有属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    相关资源
    最近更新 更多