首页 > 解决方案 > foreach 中的对象仅存储最后一个值 JavaScript

问题描述

我有一个需要存储在数据库中的特定格式,我几乎就在那里,只是不知道也找不到解决方案,如何让 foreach 存储所有对象,而不仅仅是最后一个。这是只返回最后一个结果的原始代码:

optionDetails.done((data) => {

    _.each(data, function(option, key) {
        column.config.options_product = {
            id: "product_" + key.toString(),
            text: option.identifier
        };

    });
}

我知道这可以设置为空数组并用数组存储值,但格式也将是数组,不会保存在数据库中。

那么我应该如何处理这个问题,也许将它存储在一个数组中然后转换为对象。理想的情况是串联:

optionDetails.done((data) => {

    _.each(data, function(option, key) {
        column.config.options_product += {
            id: "product_" + key.toString(),
            text: option.identifier
        };

    });
}

这是我需要的格式:

{id: "product_4", text: "1000003"}

但这不起作用。如果有人知道正确的路径,请分享。谢谢。

标签: javascriptobject

解决方案


+= 不会连接对象。您需要将值添加到特定键。您需要显式添加对象。所以先将其转换成数组,然后使用 push 操作符来推送对象。

那是:

column.config.options_product = []
 _.each(data, function(option, key) {
        column.config.options_product.push({
            id: "product_" + key.toString(),
            text: option.identifier
        };

    }));

推荐阅读