javascript - JSON 对象数组的一个元素的增量值

标签 javascript json

我有一个 JSON,其中包含 ID 和点。如果 ID 匹配,我需要增加 1。如果 ID 不匹配,我需要推送到一个新的空数组

这是我尝试过的。但它不起作用

var points = [{
  id: 1,
  point: 0
}, {
  id: 2,
  point: 0
}, {
  id: 3,
  point: 1
}]

var data = {
  id: 1
}

if (!(points.length)) {
  points.push(data)
} else {
  if (points.find(e => e.id === data.id)) {
    var m = points.find(e => e)
    console.log(m.id)
    m.point+= 1
  } else {
    points.push(data)
  }
}

最佳答案

你总是在增加数组的第一个元素

var m = points.find(e => e)
=>
var m = points.find(e => e.id === data.id)

find 需要一个在给定元素的情况下返回 true 或 false 的谓词。在第一行,它总是返回元素本身,这是一个真值。所以第一个元素是return

关于javascript - JSON 对象数组的一个元素的增量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48568571/

相关文章:

javascript - 如何在单元格5之后动态添加行vue.js

javascript - jQuery focusout 不会在输入元素退出时触发

java - Jackson 基于另一个字段的字段序列化

php - 尝试初始化 JSONObject 时出现 Android ResponseListener JSON 错误

javascript - 如果在 Angular ng-hide 中未选择任何选项,则隐藏部分

java - 制作 Google 可视化 - 在 GWT 中工作的注释图表

javascript - azure-graph Users.get(principalID) 抛出 Request_ResourceNotFound

java - 使用 Jackson JSON Mapper 在 JSON 到 POJO 之间映射时出现 400 错误请求

python - 从 DataFrame 到嵌套的 Json 对象

Android 如何使用 FlatBuffers 解析 JSON 文件?