gpt4 book ai didi

JavaScript:仅具有指定字段的重复对象

转载 作者:行者123 更新时间:2023-12-01 15:42:10 24 4
gpt4 key购买 nike

有没有办法复制只有指定字段的对象?例如:

const a = {
foo: 'bar',
bar: 'baz',
baz: 'foo',
}

// Duplicate of a with only foo and baz properties
const b = { foo: 'bar', baz: 'foo' }

我知道我能做到

b = {
foo: a.foo,
baz: a.baz,
}

但这似乎是为了喝一小杯水而走很长一段路。将对象克隆为具有指定字段的部分的最快方法是什么?

编辑:4 月 8 日

我也希望能够内联执行此操作,如下所示:

const a = {
foo: 'bar',
bar: 'baz',
baz: 'foo',
}

const obj = {
b: { foo: 'bar', baz: 'foo' }
}

最佳答案

一种选择是解构要排除的属性,并使用 rest 语法:

const a = {
foo: 'bar',
bar: 'baz',
baz: 'foo',
};
const { bar, ...b } = a;
console.log(b);


如果要将其放入对象中,请在声明对象的上方行解构:

const a = {
foo: 'bar',
bar: 'baz',
baz: 'foo',
};
const { bar, ...b } = a;
const obj = { b };
console.log(obj);


如果您有大量要排除的属性,请使用 Object.entries获取条目数组,过滤它们,然后使用 Object.fromEntries把它变成一个对象:

const a = {
foo: 'bar',
bar: 'baz',
baz: 'foo',
};
const propsToRemove = ['foo', 'bar'];
const obj = {
b: Object.fromEntries(
Object.entries(a).filter(([key]) => !propsToRemove.includes(key))
)
};
console.log(obj);

关于JavaScript:仅具有指定字段的重复对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61112537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com