Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 映射对象时如何排除对象的某个键?_Javascript - Fatal编程技术网

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
。谢谢:)