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