Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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,如何实现/修复上述代码?我认为上面的代码是不言自明的。假设您试图复制所有属性,您可能正在寻找: if(properties != undefined) { foreach(key in properties) { dialogProperty.key = property[key]; } alert(dialogProperty.close); } dialogProperty.key不是动态的,它每次都设置key属性,就像dialogPrope

如何实现/修复上述代码?我认为上面的代码是不言自明的。

假设您试图复制所有属性,您可能正在寻找:

if(properties != undefined)
{
    foreach(key in properties)
    {
        dialogProperty.key = property[key];
    }
    alert(dialogProperty.close);
}
dialogProperty.key不是动态的,它每次都设置key属性,就像dialogProperty[key]一样。

我想你指的是for而不是foreach。您还应该停止密钥的全局性,并使用Object.prototype.hasOwnProperty:

NB也成立了

属性&&检查是为了确保属性没有错误

Object.keys调用返回properties对象具有的所有键的数组

.forEach为数组中的每个元素运行一个函数


dialogProperty[key]=properties[key]将dialogProperty的值设置为properties的值。

或使用Object.KeyProperties。forEach@Raynos如果假设ECMAScript为5,则是。我不是100%相信OP是在那个阶段…有趣的是,浏览器在优化方面是多么的不同+对于这种方法,我只想澄清Object.keys只返回可枚举键,这在这里当然是需要的。
dialogProperty[key] = property[key];
if(properties != undefined)
{
    for (var key in properties)
    {
        if (properties.hasOwnProperty(key) {
            dialogProperty[key] = properties[key]; // fixed this variable name too
        }
    }
    alert(dialogProperty.close);
}
properties && Object.keys(properties).forEach(function(key) {
  dialogProperty[key] = properties[key];
});
console.log(dialogProperty.close);