javascript - 复制JS对象并过滤掉某些属性的最简单方法

标签 javascript ecmascript-6

如果我有一个 JS 对象,我想创建一个新对象来复制除需要过滤掉的属性黑名单之外的所有属性,最简单的方法是什么?

所以我会做类似的事情

originalObject.copyAndFilter('a', 'b')

这将获取原始对象,复制它,并确保属性 ab 不在新对象中。

我通过 Babel 使用 ES2015/2016,所以如果它提供了一种更简单的方法也可以。

最佳答案

你可以使用 Set并删除不需要的属性。

var object = { a: 1, b: 2, c: 3, d: 4 },
    filteredObject = {},
    p = new Set(Object.keys(object));
    blacklist = ['a', 'b'];

blacklist.forEach(a => p.delete(a));

[...p].forEach(k => filteredObject[k] = object[k]);
console.log(filteredObject);

关于javascript - 复制JS对象并过滤掉某些属性的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39972428/

相关文章:

Javascript 将输入插入数组会导致多个数组而不是一个

javascript - JavaScript 中 'export' 和 'export default' 的区别?

javascript - 在 TypeScript 中从数组中累积映射

javascript - 将函数响应保存在变量中

JavaScript 按钮切换

javascript - 通过iframe上传Amazon S3

javascript - 用于在 javascript 数组中查找值位置的表单

javascript - 比较数组对象并显示差异

javascript - 单击按钮时使用 javascript 将 php post 变量发送到 url

javascript - 强制产生的函数出错以进行单元测试