Javascript 使用forEach在对象上循环(不适用于)

Javascript 使用forEach在对象上循环(不适用于),javascript,foreach,typescript,Javascript,Foreach,Typescript,嗨,我有以下目标: arguments = { familyName: undefined, givenName: undefined, age: undefined }; 我想循环每个键,并对每个键执行一些操作:value。我这样试过: this.arguments.forEach((item:any) => { if(item == undefined) { alert("Hallo"); } }); 可以这样循环吗?我不会

嗨,我有以下目标:

arguments = {
    familyName: undefined,
    givenName: undefined,
    age: undefined
}; 
我想循环每个键,并对每个键执行一些操作:value。我这样试过:

this.arguments.forEach((item:any) => {
    if(item == undefined) {
        alert("Hallo");
    }
});
可以这样循环吗?我不会为创建一个正常的
,或者我不是在寻找这样的解决方案,我的问题是是否可以像上面的
forEach()
中那样循环它,以及是否可以这样做。我经常在数组中使用它,而且很有效,所以我想在这样的对象中也可能使用它


谢谢

您可以使用
对象获取密钥。密钥
在其上循环

args={
familyName:未定义,
givenName:未定义,
年龄:未定义
}; 
Object.keys(args).forEach((key/*:string*/)=>{
if(参数[键]==未定义){
控制台日志(“Hallo”);
}

});在对象上循环时,forEach仅在数组上工作

试试这个:

Object.keys(this.arguments).forEach((idx) => {
    var row = this.arguments[idx];
    if (row === undefined) alert('hallo');
});
为此,您确实需要使用es6

好的ol'es5方法:

for(idx in this.arguments)
{
    if (! this.arguments.hasOwnProperty(idx)) continue;
    if (this.arguments[idx] === undefined) alert('hallo');
}

没有内置的函数可以帮助您迭代对象,但是,实现它们非常容易:

Object.prototype.forEach=function(回调,上下文=null){
Object.keys(this.forEach)((键,索引,键)=>{
如果(!this.hasOwnProperty(键)){
返回;
}
callback.call(上下文、键、此[键]、索引、键);
});
归还这个;
}
设foo={baz:1,pippo:2};

foo.forEach((key,value,index)=>console.log(index,key,value))
forEach的可能重复是
数组的方法,而不是简单的对象虽然我真的很喜欢你的答案,但是扩展/重载本机类型的原型通常是个坏主意,所以最好不要推广它。代码很到位,而且我自己也在使用,哈哈。就我个人而言,我完全同意你的看法。。。我不喜欢也从不使用内置对象的原型,但是,看看这个问题,我的答案似乎已经调整好了。