我有一个平面JS对象:

{a: 1, b: 2, c: 3, ..., z:26}

我想克隆除一个元素之外的对象:

{a: 1, c: 3, ..., z:26}

执行此操作的最简单方法是什么(如果可能,最好使用ES6/7)?

推荐答案

如果使用Babel,则可以使用以下语法转换为copy property b from x into variable b and then copy rest of properties into variable y:

let x = {a: 1, b: 2, c: 3, z:26};
let {b, ...y} = x;

it will be transpiled分为:

"use strict";

function _objectWithoutProperties(obj, keys) {
  var target = {};
  for (var i in obj) {
    if (keys.indexOf(i) >= 0) continue;
    if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
    target[i] = obj[i];
  }
  return target;
}

var x = { a: 1, b: 2, c: 3, z: 26 };
var b = x.b;

var y = _objectWithoutProperties(x, ["b"]);

Javascript相关问答推荐

鼠标移动时更新画布

使用typeof运算符获取对象值类型-接收字符串而不是数组

foreach循环中的Typescript字符串索引

react 路由加载程序行为

如何在mongoose中链接两个模型?

使用GraphQL查询Uniswap的ETH价格

Websocket错误—有一个或多个保留位开启:reserved1 = 1,reserved2 = 0,reserved3 = 0

如何通过将实例方法的名称传递给具有正确类型的参数的继承方法来调用实例方法?

连接到游戏的玩家不会在浏览器在线游戏中呈现

try 使用PM2在AWS ubuntu服务器上运行 node 进程时出错

使用父标签中的Find函数查找元素

在表单集中保存更改时删除';禁用';

将多个文本框中的输出合并到一个文本框中

使用CEPRESS截取时,cy.Wait()在等待5000ms的第一个路由请求时超时

在ChartJS中使用spanGaps时,是否获取空值的坐标?

连续添加promise 时,如何在所有promise 都已结算时解除加载覆盖

有角粘桌盒阴影

使用props 将VUE 3组件导入JS文件

在点击链接后重定向至url之前暂停

如何创建一个for循环,用于计算仪器刻度长度并将其放入一个HTML表中?