Javascript 从对象中省略扩展数组
我有一个功能:Javascript 从对象中省略扩展数组,javascript,lodash,Javascript,Lodash,我有一个功能: const mergedPartOfStateWithCurrentSearchValues = (object, valuesToOmit) => { const {...valuesToOmit, ...rest } = object; return rest; }; 第一个参数是对象。第二个参数是要从对象中忽略的字符串值数组。我想把剩下的还给你。所以这实际上不是那样的。我也尝试过使用lodash: const mergedPartOfStateWithCur
const mergedPartOfStateWithCurrentSearchValues = (object, valuesToOmit) => {
const {...valuesToOmit, ...rest } = object;
return rest;
};
第一个参数是对象。第二个参数是要从对象中忽略的字符串值数组。我想把剩下的还给你。所以这实际上不是那样的。我也尝试过使用lodash:
const mergedPartOfStateWithCurrentSearchValues = (object, valuesToOmit) => {
const filteredObject = pickBy(object, function (value, key) {
return !valuesToOmit.includes(key)
})
return filteredObject;
};
而且它也不起作用。我的点子快用完了。如何做我想做的事情并保持此函数的通用性?您可以使用获取对象的条目,然后使用和方法筛选出出现在
valuestomit
数组中的键的条目。然后,您可以使用从这些筛选条目构建对象:
const object={a:1,b:2,c:3};
常量valuestomit=['a','c']
const mergedPartOfStateWithCurrentSearchValues=(对象,ValuesToMit)=>{
返回Object.fromEntries(
Object.entries(Object.filter([k])=>!valuestomit.includes(k))
);
}
const res=mergedpartofstate与当前搜索值(object,valuestomit);
控制台日志(res)代码>您可以减少数组,只获得一个没有所需键的对象
它的工作原理是使用和下划线从每个循环中的对象中删除一个键,而不再使用和
因此,您将获得一个没有不需要的关键点的对象
const
子集=(对象,无)=>
没有.reduce((o,k)=>({[k]:,…o}=o,o),对象);
log(子集({a:1,b:2,c:3},['a',c'])
你有一个对象
和ValuesToMit
的例子吗?比如说对象
是{a:1,b:2,c:3},ValuesToMit
是['a','c'],所以我想返回{b:2}Lodash有一个.omit()
函数,它正是你想要的。在lodash(5)的下一个主要版本中将删除一个警告-省略。不知道这里发生了什么,但它真的很优雅。Thx:)