【问题标题】:Add to object instead of overwrite it添加到对象而不是覆盖它
【发布时间】:2018-12-13 09:51:39
【问题描述】:

我正在使用以下代码

$scope.createAuction = function () {
    var auction = { auction: { langData: {} } };

    if($scope.selected.tab === $scope.infoTabs[0]) {
        Object.assign(auction.auction, {
          type: 'account',
          layout: $scope.selected.description
        });
        if(auction.auction.layout === 1) {
            for(var i = 0, l = $scope.langInput.values.length; i < l; i++) {
                auction.auction.langData[$scope.langInput.values[i].selected] = {
                    name: $scope.inputs.auction_name_account[i + 1]
                };
            }
            for(var i = 0, l = $scope.langInput.values.length; i < l; i++) {
                auction.auction.langData[$scope.langInput.values[i].selected] = {
                    description: 'a'
                }
            }
        }
    }
    console.log(JSON.stringify(auction));
}

为了向用户提供的对象添加值。我正在使用循环,因为用户可以更改输入数。

我想要实现的是我的对象看起来像这样:

"auction": {
    "type": "car",
    "layout": 1,
    "langData": {
        "pl": {
            "name": "nazwa aukcji w pl",
            "description": "opis aukcji w pl",
        },
        "eng": {
            "name": "name auction eng",
            "description": "description auction eng",
        },

但是我的代码覆盖了"pl""eng",所以结果是我只看到了描述。

【问题讨论】:

    标签: javascript object overwrite


    【解决方案1】:

    在第二个循环中,插入description 属性而不是覆盖对象:

    for(var i = 0, l = $scope.langInput.values.length; i < l; i++) {
        auction.auction.langData[$scope.langInput.values[i].selected].description = 'a';
    }
    

    如果您愿意,也可以组合循环:

    for (var i = 0, l = $scope.langInput.values.length; i < l; i++) {
        auction.auction.langData[$scope.langInput.values[i].selected] = {
            name: $scope.inputs.auction_name_account[i + 1],
            description: 'a'
        };
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-30
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-04
      • 2021-07-16
      • 1970-01-01
      相关资源
      最近更新 更多