javascript - 在 for-in-loop 中创建新对象

标签 javascript oop object properties for-in-loop

我想创建一个新对象并为存储在某个 json 中的每个数组分配一些属性。我有这个主要工作除了...

for (var i in json) {

            a = 0;
            a++;
            a = new Object();

            for (var key in json[i]) {
                var Key = key;
                var Value = json[i][key];
                a[Key] = Value;
            }
            a.outputProperties();
        }

当我输出对象属性时,一切都是未定义的。

如果我在循环外创建单个对象并为其分配属性,它似乎工作正常,除了第一组属性被以下属性覆盖。不确定为什么我无法在循环内动态创建对象和分配属性。

最佳答案

您从未实际设置a 的任何属性。您只需设置 sup2 的属性。顺便说一句,你还有其他不必要的东西,比如 var Key = key; 试试这个:

for (var i in json) {
    var a = new supplement();
    for (var key in json[i]) {
        a[key] = json[i][key];
    }
    a.outputProperties();
}

关于javascript - 在 for-in-loop 中创建新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3711247/

相关文章:

javascript - 如何在对象内部没有冗余 'name' 键的情况下获取对象的属性名称?以及如何返回用户提供的 undefined object 的 'name'?

php - 魔法 setter/getter / setter/getter 未被调用

java - 设计面向对象的系统/GUI

python - 错误 "... object has no attribute ..."是什么意思?

javascript - 测试对齐 'Center' 到 highchart 图例内容

java - 为什么我在 JUnit 的返回列表中得到额外的方括号

c++ - 将对象的空指针传递给函数

javascript - 如何将 Angular Directive(指令)的链接和 Controller 传递给它

javascript - 在 Angular 中预览多个图像和视频

javascript - jQuery 遍历列表项并获取 data-imgid 属性值