Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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,我有一个包含属性和方法的对象。我希望遍历它,使其中的每个属性都变为null,并保持函数不变。该对象如下所示: let Obj = { prop1: /* somevalue */ prop2: /* somevalue */ /* another properties goes here */ func1: () => { /* do something */ } /* another functions goes here */ } 我可

我有一个包含属性和方法的对象。我希望遍历它,使其中的每个属性都变为null,并保持函数不变。该对象如下所示:

let Obj = {
   prop1: /* somevalue */
   prop2: /* somevalue */
   /* another properties goes here */
   func1: () => {
      /* do something */
   }
   /* another functions goes here */
}
我可以用:

Object.keys(filter).forEach((key, index) => {
   /* assign null to properties */
});

对象中的函数是否受到影响?

您可以迭代
条目
并检查每个值的
类型-如果它不是
函数
,则将
null
分配给属性:

让Obj={
prop1:‘prop1’,
prop2:‘prop2’,
func1:()=>{
/*做点什么*/
}
}
Object.entries(Obj.forEach)([key,val])=>{
如果(值的类型!=“函数”){
Obj[key]=null;
}
});

控制台日志(Obj)您可以使用
typeof
测试它是否是一个函数-如果是,则什么都不要做。如果不是,则为其赋值
null

让Obj={
prop1:‘prop1’,
prop2:‘prop2’,
func1:()=>{}
}
Object.keys(Obj.forEach)(key=>{
Obj[键]=Obj[键]的类型==“功能”?Obj[键]:空;
});
控制台日志(Obj)
您可以使用循环键并将非函数属性设置为
null

let过滤器={
建议一:"一",
建议二:"二",
func1:()=>{}
}
用于(让输入过滤器){
if(过滤器类型[键]!=“功能”)
筛选器[键]=空
}
console.log(过滤器)
在筛选器中,删除具有类型函数的值

让Obj={
建议一:"a",,
/*一些价值*/
建议二:"b",,
/*一些价值*/
/*另一个属性在这里*/
func1:()=>{
/*做点什么*/
返回'ab'
}
/*另一个函数在这里*/
}
Object.keys(Obj).filter(e=>typeof Obj[e]!==“function”).forEach(x=>Obj[x]=null)

console.log(Obj)
是的,伙计,我只是随便玩玩并检查一下。它起作用了。谢谢。为什么有一个对象同时包含方法和未知属性?
filter(e=>typeof e!=='function')