在不替换子对象的情况下添加到Javascript对象

詹姆士

我试图运行一个for循环来创建新的javascript对象并将其添加到现有的javascript对象而不进行替换。

例如,我试图将其创建为输出,而不会每次都覆盖group [i](仅添加number [i] data):

{
    "group1": {
        "number1": "data",
        "number2": "data",
        "number3": "data"
    },
    "group2": {
        "number1": "data",
        "number2": "data"
    }
}

我的循环如下所示:

var array = [{
    "groupName": "group1",
    "number": "number1",
    "data": "data"
}, {
    "groupName": "group1",
    "number": "number2",
    "data": "data"
}, {
    "groupName": "group1",
    "number": "number3",
    "data": "data"
}, {
    "groupName": "group2",
    "number": "number1",
    "data": "data"
}, {
    "groupName": "group2",
    "number": "number2",
    "data": "data"
}]

var groupLinks = {};

for(i = 0; i < array.length; i++) {

    groupLinks[array[i].groupName] = { 
        [array[i].number]: array[i].data

}

如您在此代码中看到的那样,我的循环每次只会替换“ group1”和“ group2”。

转到0

这就是我要如何处理这个问题:

var array = [{
    "groupName": "group1",
    "number": "number1",
    "data": "data"
}, {
    "groupName": "group1",
    "number": "number2",
    "data": "data"
}, {
    "groupName": "group1",
    "number": "number3",
    "data": "data"
}, {
    "groupName": "group2",
    "number": "number1",
    "data": "data"
}, {
    "groupName": "group2",
    "number": "number2",
    "data": "data"
}];

var groupLinks = {};

array.forEach(
    function (element)
    {
        var groupName = element.groupName;
        (groupLinks[groupName] = groupLinks[groupName] || {})
            [element.number] = element.data;

    }
);

console.log(groupLinks);

在这里,当||操作员不存在时,我使用运算符创建了一个新组groupLinks[groupName],并在每次迭代时覆盖了现有的组,并且使用了一种forEach构造来遍历数组元素。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不替换的情况下添加到python字典

如何在不替换使用 NodeJS 的情况下将数据添加到 Firebase?

如何在不替换旧文本的情况下将文本添加到TextView?

如何在不使用 Javascript 中的 push 方法的情况下将对象添加到数组中?

仅在属性未定义的情况下才将属性添加到对象

在不重新加载页面的情况下将对象添加到下拉列表

在不使用循环的情况下将多个子项添加到xml对象

仅在不存在的情况下如何将对象添加到数组

如何在不覆盖Javascript的情况下将一个对象的属性添加到另一个对象

如何在不崩溃的情况下将对象ID添加到Visual Studio 2015中的任何本地对象

Core Data - 如何在不将其添加到数据库的情况下创建 Core Data 对象的实例?

C ++,在没有动态内存分配的情况下将临时对象添加到列表

如何在没有'new'的情况下将新对象实例添加到std :: list

如何在不添加子列表的情况下将键值对添加到列表?

将子数组添加到Javascript对象中

是否有一种方法可以在不进行 for 循环的情况下将一组对象添加到对象数组的末尾?

React Router:如何在不替换任何内容的情况下正确附加到路由/url?

在不使用Plotly Express的情况下将垂直矩形添加到绘图子图

将对象添加到子数组

如何在不事先下载整个列表的情况下将对象添加到 Firebase 实时数据库中的列表?

如何在不使用ConcurrentModificationException的情况下通过线程将对象添加到列表并同时使用列表?

是否可以在不手动将重写的克隆方法添加到C ++中的每个派生类的情况下克隆多态对象?

有没有办法在不定义布局的情况下将 QPushButton 对象动态添加到 QWidget 中?

仅在满足条件的情况下添加到dict

仅在设置了变量的情况下添加到数组

在不替换Android的情况下切换片段

如何在不替换子字符串的情况下替换句子中的特定单词

如何在不替换数组内容的情况下将数组内容添加(复制)到javascript中的另一个数组?

在动态键的情况下用于对象替换的 Mongodb 聚合