Javascript 映射对象时如何排除对象的某个键?
如果我有一个对象,比如Javascript 映射对象时如何排除对象的某个键?,javascript,Javascript,如果我有一个对象,比如 const obj = { a: 1, b: 2, c: 3, } 我可以将键和值映射为 Object.entries(obj).map(([key, value]) => console.log(`${key}: ${value}`)) 在Javascript中,映射属性时是否可以省略属性 大概 Object.entries({a: obj.a, ...obj}).map(([key, value]) => console.log(`${ke
const obj = {
a: 1,
b: 2,
c: 3,
}
我可以将键和值映射为
Object.entries(obj).map(([key, value]) => console.log(`${key}: ${value}`))
在Javascript中,映射属性时是否可以省略属性
大概
Object.entries({a: obj.a, ...obj}).map(([key, value]) => console.log(`${key}: ${value}`))
我可以做到以下几点:
Object.entries(obj).map(([key, value]) => key !== 'a' && console.log(`${key}: ${value}`))
但我觉得有一种更干净的方法可以做到这一点,而且这也行不通,因为映射索引将包含
未定义的
。只是想澄清这一点。您可以使用过滤器
Object.entries(obj).filter(([key, _]) => key !== "a").map();
以下是您想要的:
const obj={
答:1,,
b:2,
c:3,
}
const res=Object.entries(obj.filter)([key,value])=>key!==a');
控制台日志(res)代码>如果要在使用映射时隐藏/排除键,可以使用以下命令将其enumerable属性设置为false:
const obj={
答:1,,
b:2,
c:3,
}
//这将对obj隐藏键“b”
Object.defineProperty(obj,'b'{
可枚举:false,
});
Object.entries(obj.map(([key,value])=>console.log(`${key}:${value}'))
首先为什么要在这里使用.map()
?你什么也不退。似乎您正在将其用作.forEach()
。如果您想跳过属性,我只需将一个.filter()
链接到一个.map()
,然后将一个对象映射到JSX元素,我需要从表单数据对象中排除一个特定的键。@MikeK如果您映射到JSX元素,然后请向我们展示实际的代码。可能有用的是constfiltermap=(f,m)=>(xs)=>xs.flatMap((x)=>f(x)?[m(x)]:[])
您可以在过滤器之后使用reduce从entries数组获取对象<代码>对象.entries(obj).filter(([key,[])=>key!==“a”).reduce((res[key,value])=>({……res[key]:value}),{})代码>@FilipePinheiro OP不想这样?不,您不应该为此使用reduce
,只需调用Object.fromEntries
:-)直到fromEntries
。谢谢:)