Javascript 如何以函数方式修改对象的所有属性

Javascript 如何以函数方式修改对象的所有属性,javascript,Javascript,我需要创建一个函数,该函数创建一个新对象,其中的所有属性设置为true,该函数应创建一个新对象 如何使用香草js?我可以使用解构主义和最新的JS const in = { ida:true, idb:false, idc:false, ide:true } 需要结果 const out = { ida:true, idb:true, idc:true, ide:true } 您可以使

我需要创建一个函数,该函数创建一个新对象,其中
的所有属性设置为
true
,该函数应创建一个新对象


如何使用香草js?我可以使用解构主义和最新的JS

   const in = {
        ida:true,
        idb:false,
        idc:false,
        ide:true
    }
需要结果

const out = {
    ida:true,
    idb:true,
    idc:true,
    ide:true
}

您可以使用新对象映射所有关键点,并将
false
作为值。稍后将它们指定给单个对象

const
inO={ida:true,idb:false,idc:false,ide:true},
outO=Object.assign(…Object.keys(inO.map)(k=>({[k]:true}));

控制台日志(outO)
您可以使用新对象映射所有键,并将
false
作为值。稍后将它们指定给单个对象

const
inO={ida:true,idb:false,idc:false,ide:true},
outO=Object.assign(…Object.keys(inO.map)(k=>({[k]:true}));

控制台日志(outO)好的,您可以使用
Object.keys
和spread操作符来完成此操作:

const输入={
艾达:没错,
idb:错,
idc:错,
艾德:没错
}
const out=Object.keys(input).reduce((acc,key)=>({…acc,[key]:true}),{});

console.log(out)
您可以使用
Object.keys
和spread操作符来完成此操作:

const输入={
艾达:没错,
idb:错,
idc:错,
艾德:没错
}
const out=Object.keys(input).reduce((acc,key)=>({…acc,[key]:true}),{});

console.log(out)
您可以使用for..in循环,循环遍历对象的键:

函数setTrue(obj){
对于(obj中的k)obj[k]=真;
}
常数o={
艾达:没错,
idb:错,
idc:错,
艾德:没错
}
设置为真(o);

控制台日志(o)您可以使用for..in循环,循环遍历对象的键:

函数setTrue(obj){
对于(obj中的k)obj[k]=真;
}
常数o={
艾达:没错,
idb:错,
idc:错,
艾德:没错
}
设置为真(o);

控制台日志(o)我已尝试使用reduce,但没有结果..:(请发布,你可能复制的“如何使用vanilla js?”的可能复制品是什么?——使用一个不变的库。不要重新发明轮子。我尝试过reduce,但没有结果……(请发布,你可能复制的“如何使用vanilla js?”的可能复制品是什么-使用不可变库。不要重新发明轮子。谢谢,但我希望此警告至少包含1个参数,但得到0个或更多参数。我正在使用typescriptWith destructuring。我发现使用{…Object.keys}而不是Object更优雅。assign@Logar这和我的回答一样:)@J.Pichardo啊,是的,刚刚注意到:)谢谢,但我希望此警告至少包含1个参数,但得到0个或更多参数。我正在使用typescriptWith destructuring。我发现使用{…Object.keys}而不是Object更优雅。assign@Logar这和我的回答一样:)@J.Pichardo啊,是的,刚刚注意到:)