当前位置: 首页 > 知识库问答 >
问题:

我如何克隆除了一个键之外的JavaScript对象?

慕云
2023-03-14

我有一个平面JS对象:

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

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

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

最简单的方法是什么(如果可能的话更倾向于使用ES6/7)?

共有1个答案

羊舌富
2023-03-14

如果使用Babel,可以使用以下语法将属性b从x复制到变量b中,然后将其余属性复制到变量Y中:

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

它将被转换成:

"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"]);
 类似资料:
  • 我有两个接口。除了一把钥匙,它们真的很相似。 并从DB获取initialState。 但是,我不知道如何在打字稿中这样做。 所以,我的问题是“如何克隆除一个关键字以外的对象”

  • 问题内容: 将变量分配给另一个变量会将引用复制到同一实例。这意味着更改一个将更改另一个。 我实际上如何克隆或复制实例? 问题答案: 使用Date对象的方法,该方法返回自1970年1月1日00:00:00纪元时间以来的毫秒数: 在Safari 4中,您还可以编写: …但是我不确定这是否可以在其他浏览器中使用。(似乎可以在IE8中使用)。

  • 问题内容: 我有一个物体。我想将其复制为对象,这样更改就不会修改。我意识到,复制从内置JavaScript对象派生的对象将导致额外的不需要的属性。这不是问题,因为我正在复制自己的文字构造对象之一。 如何正确克隆JavaScript对象? 问题答案: 在JavaScript中对任何对象执行此操作都不是简单或直接的。您将遇到错误地从对象的原型中获取应该留在原型中而不应复制到新实例的属性的问题。例如,如

  • 我有一个web应用程序,用户可以点击按钮来引擎对象。 我用Javascript编写了下面的方法,它工作了。但是,如果有2个或3个以上的用户在克隆,就会弹出随机错误。例如,它会说,或。 但如果只有一个人在做,它就永远不会有错误。 所以我在想,有没有更好的写法: 我尝试过这样做,但它生成空值: 所以我一定是做错了什么,我希望有人能给我指明正确的方向。 谢谢!

  • 问题内容: 如果克隆数组,我将使用 我想知道如何在nodejs中克隆对象。 问题答案: 对于不需要压缩每一滴性能的实用程序和类,我经常作弊,只是使用JSON执行深层复制: 这不是唯一的答案,也不是最优雅的答案。所有其他答案都应考虑成为生产瓶颈。但是,这是一个快速而肮脏的解决方案,非常有效,并且在大多数情况下(我会克隆属性的简单哈希值)很有用。

  • 我有下面的java代码,当我稍后尝试访问MiscDoc对象时,它似乎是空的。我找不到答案。NotesDocument上的clone()方法。 if语句只被访问一次 我该如何解决这个问题