【问题标题】:adding JSON values based on keys comparison基于键比较添加 JSON 值
【发布时间】:2012-10-27 19:05:31
【问题描述】:

我想在追加到对象之前比较 JSON 对象中键的值,如果它们相同,则添加值而不是追加。

我有:

 {"carset": {
          "location1": [
                      {"car": "volvo", "count": 5},
                      {"car": "mazda", "count": 7},
                      {"car": "toyota", "count": 10},
                     ]
             }
  }

当我在我的 for 循环中点击这个时:

newcar = 'volvo';
newcount = 6;
cars[i] = ({car: newcar, count: newcount});

我想注意到 volvo 已经在 json 对象中,只需将 newcount 添加到现有计数中即可。谢谢!

【问题讨论】:

标签: javascript json for-loop


【解决方案1】:

您需要与 location1 数组中的所有项目进行比较,或者您可以重组 JSON 以使比较更容易

json = {
 'carset' : {
    'location-cars' : {
      'volvo'  : 5,
      'mazda'  : 7,
      'toyota' : 10
    }
  }
}

function addCar(cars, car) {
  var theCar = cars[car];
   if ( theCar == undefined ) {
      cars[car] = 1;
   } else {
      cars[car] = theCar + 1;
   }
   return cars[car];
}

addCar(json.carset['location-cars'], 'volvo');

【讨论】:

  • 那是你的帮助 shyam。我对上述内容进行了重组。我现在如何进行比较和添加?
【解决方案2】:
function checkExists(carName) {
    for (var k in a.carset.location1) {
        if (a.carset.location1[k].car == carName) {
            return true;
        }
    }

    return false;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-01
    • 2020-09-17
    • 2021-09-19
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    相关资源
    最近更新 更多