javascript - 根据键比较添加 JSON 值

标签 javascript json for-loop

我想在附加到对象之前比较 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 添加到现有计数即可。谢谢!

最佳答案

您需要与 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');

关于javascript - 根据键比较添加 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13103233/

相关文章:

javascript - 如何使谷歌地图默认指向美国?

javascript - 使用 showDirectoryPicker() 访问子目录文件内容

javascript - ngOptions 按值比较

python - 如何用python更新json文件

javascript - 如何在 HTML 中的 for 循环中使用文档

javascript - 在服务中等待 Angular JS (REST -> $resource)

javascript - Sprite 不能从 three.js 场景中删除?

javascript - 使用多个本地 JSON 数组作为结果的 JQUERY 自动完成

c - 这个for循环发生了什么

c# - 试图找到 Tom 在 : 10 repetitions 上掷出 6 所需的平均尝试次数