Javascript 如何将字符串数组复制到对象中
我有一个字符串数组和一个对象:Javascript 如何将字符串数组复制到对象中,javascript,Javascript,我有一个字符串数组和一个对象: const arr = ['abc', 'def']; const obj = { foo: true, bar: 42, }; 我需要将arr中的值添加为obj中的键,以便生成的对象看起来像: const result = { foo: true, bar: 42, abc: true, def: true, }; 这就是我所尝试的: { ...obj, ...arr.map(x => ({[x]: true })) } 您
const arr = ['abc', 'def'];
const obj = {
foo: true,
bar: 42,
};
我需要将arr
中的值添加为obj
中的键,以便生成的对象看起来像:
const result = {
foo: true,
bar: 42,
abc: true,
def: true,
};
这就是我所尝试的:
{ ...obj, ...arr.map(x => ({[x]: true })) }
您只需使用
Object.assign()
:
下面给出的示例将改变原始对象:
让arr=['abc','def'];
设obj={
傅:是的,
酒吧:42,
};
//注意,它将改变原始对象
arr.forEach((e)=>Object.assign(obj,{[e]:true}));
控制台日志(obj)代码>您可以复制对象并映射所需的属性
var数组=['abc','def'],
对象={foo:true,bar:42},
结果=Object.assign({},Object,…array.map(k=>({[k]:true}));
控制台日志(结果)代码>那么:
Object.assign({}, obj, ...arr.map(x => ({[x]: true})))
演示:
const arr=['abc','def'];
const obj={foo:true,bar:42};
const result=Object.assign(obj,…arr.map(x=>({[x]:true}));
控制台日志(结果)代码>另一种方法是使用
这将变异obj
,result
将指向obj
。这意味着改变其中一个会改变两个
const result = arr.reduce((acc, item) => {
acc[item] = true;
return acc;
}, obj);
如果您不希望变异obj
,则使用
const result = arr.reduce((acc, item) => {
acc[item] = true;
return acc;
}, obj);
const result = arr.reduce((acc, item) => {
acc[item] = true;
return acc;
}, { ...obj });