javascript - 使用类似解构的语法分配给对象中的多个值

标签 javascript ecmascript-6

是否有更简洁的方法来设置 bar 中的 abc 值。类似于 ES6 解构赋值语法?

bar = { foo: 10, a: 0, b: 0, c: 0, baz: 14 };

myFunc = (myObj) => {
    const { foo } = myObj;
    let a, b, c;
    a = 1 + foo;
    b = 2 + foo;
    c = 3 + foo;
    myObj.a = a;
    myObj.b = b;
    myObj.c = c;
}

myFunc(bar);

假设 bar 已在其他地方实例化,我想设置新值,而不为 bar 创建/分配新对象。我们可以这样做 myObj = {...myObj, a, b, c},但根据我的理解,这会将一个新对象分配给 bar

最佳答案

基于this answer to a similar question ,您可以使用Object.assign() .

bar = { foo: 10, a: 0, b: 0, c: 0, baz: 14 };

myFunc = (myObj) => {
    const { foo } = myObj;
    let a, b, c;
    a = 1 + foo;
    b = 2 + foo;
    c = 3 + foo;
    Object.assign(myObj, {a: a, b: b, c: c});
}

myFunc(bar);

或者当然

    const { foo } = myObj;
    Object.assign(myObj, {a: 1 + foo, b: 2 + foo, c: 3 + foo})

关于javascript - 使用类似解构的语法分配给对象中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47007824/

相关文章:

javascript - 在过滤方法 React/JS 中删除多个项目

javascript - Vimeo Api - 无法使用 Froogaloop 触发 playProgress 事件

javascript - 计算两个坐标之间距离的函数

javascript - 如何将 "this"传递给窗口 setInterval

javascript - Async.waterfall 的 native 回调函数

javascript - 如何在不维护引用的情况下在对象上使用 ES6 HashMap (在 Java 哈希码中)

javascript - 刷新时滚动到页面顶部

javascript - 从外部或内部来源为网站加载库、脚本等?

javascript - 在 Typescript/Javascript ES6 中以编程方式获取同一文件中模块的所有导出

javascript - 使用 es6 或 lodash 将字符串数组转换为对象数组