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

将内容从一个对象复制到另一个对象时,按键名排除特定键/值对

长孙知
2023-03-14

下面的示例工作正常,产生了所需的输出。但是,我想知道是否有更简洁的方法来执行此复制操作,方法是从data对象中排除键createdupdated的键/值对。

        const actionMode = 'update';        // 'create';

        const dataFromParent = {
            itemid: "104",
            itemname: "insurance",
            itemtype: "expense",
            unitofmeasure: "$/yr",
            created: "2021-04-14 05:59:30.097",
            updated: "2021-04-14 05:59:30.097"
        }

        const data = { ...dataFromParent }; // make a shallow copy to avoid changing original object values

        if (actionMode == 'update') {
            delete data.created;
            delete data.updated;
        }

        console.log(JSON.parse(JSON.stringify(dataFromParent)));
        console.log(JSON.parse(JSON.stringify(data)));

使用@vdegenne在2018年11月23日发布的这篇文章中的推荐,我尝试了:

let data = {};

if (actionMode == 'update') {
    data = (({ created, updated, ...o }) => o)(dataFromParent);
}

编辑:
此修改提供了所需的结果,并且没有任何“no-unused-vars”错误:

        let data = {};

        if (actionMode == 'update') {
            // eslint-disable-next-line no-unused-vars
            const { created, updated, ...rest} = { ...dataFromParent };
            data = rest;
        }

共有1个答案

侯焱
2023-03-14

您可以使用对象析构,这样它将分配createdupdated值,并在单个对象中分配其他属性。

由于您正在使用VUE,因此在x.VUE文件中的script标记的所有导入之前添加以下代码段。请参阅VUE

// eslint-disable-next-line no-unused-vars

不允许未使用的变量(no-unused-vars)

如果错误仍然存在,则更改package.json中的eslint配置

"rules": {
   "no-unused-vars": "off"
}
const dataFromParent = {
  itemid: "104",
  itemname: "insurance",
  itemtype: "expense",
  unitofmeasure: "$/yr",
  created: "2021-04-14 05:59:30.097",
  updated: "2021-04-14 05:59:30.097",
};

const { created, updated, ...rest } = dataFromParent; // make a shallow copy to avoid changing original object values
const data = rest;

console.log(data);
 类似资料:
  • 我目前有一个ArrayList,其中包含“Product”对象,每个对象中包含一个字符串、整数和double。我希望能够使用参数搜索对象,找出与搜索参数匹配的ID(整数值),并将此对象复制到另一个ArrayList中。有没有可能通过迭代器实现这一点,或者有没有更简单的方法?

  • 嗨,我有两个对象列表。清单1和清单2 App1中的员工列表 在sql中,我们可以很容易地通过ID列进行连接。但是这里要点击seperate API来阅读清单2。 我可以从清单2创建map,并将EmpId作为键,继续从map获取对象,并将详细信息设置到清单1。 想知道有没有更好的方法来做这件事。

  • 问题内容: 我有类似的东西: 现在,我想用另一个JSON结构值替换“我的英语标题” 。 我尝试了: 但这是行不通的。任何人都可以给我提示如何在JSON变量中获取JSON值? 编辑:这是使用Jquery的上下文菜单,但是我在下面的所有解决方案中都遇到了问题,这是时候传递分隔符的字符串了。它不显示分隔符,因为它将字符串而不是仅字符串传递给对象。 例: 问题答案: 解决您的修改。尝试以下

  • 我有两个对象列表,它们在两个列表中都有重复名称。我需要从清单2中删除清单1中的所有重复值。 下面是一个场景,类有名称变量,用这个变量需要检查清单1中的重复值并需要删除。 //这是具有3个对象的第一个列表 清单1大小为1 请建议我在Java8与流。

  • 问题内容: 我可以使用通用的特定于Javascript / Coffeescript的习惯用法吗?主要出于好奇。 我有两个数组,一个数组由所需的键组成,另一个数组由所需的值组成,我想将其合并到一个对象中。 问题答案: var r = {}, i, keys = [‘one’, ‘two’, ‘three’], values = [‘a’, ‘b’, ‘c’];

  • 问题内容: 在Python中,是否有一个库方法可在同一类的两个(已经存在)实例之间复制所有属性? 我的意思是,类似Apache Commons的东西 问题答案: 如果您的班级未修改或出于特殊属性访问目的,则所有属性都存储在其中,因此您可以执行以下操作: 如果使用python属性,则应查看并筛选出要复制的属性。