javascript - 根据匹配键合并两个多维数组?

标签 javascript arrays json multidimensional-array

所以目前我正在生成应分组在一起形成以下 JSON 的记录:

{
  "Monday": [{
      "Index": "1",
      "To": "200",
      "From": "1200"
    },
    {
      "Index": "2",
      "To": "1300",
      "From": "1400"
    }
  ],
  "Tuesday": [{
      "Index": "1",
      "To": "100",
      "From": "200"
    },
    {
      "Index": "2",
      "To": "1000",
      "From": "1200"
    },
    {
      "Index": "3",
      "To": "1300",
      "From": "1500"
    }
  ]
}

但目前,输出看起来更像是这样:

正如您所看到的,正在创建两条共享相同“索引”值的记录 - 这主要是因为我还没有弄清楚如何执行 where index = <index> insert处理查找具有匹配索引的记录并向其添加属性。

目前,代码如下所示 -

var controlsJson;
//Assume two loops are running through different sets of values for "type". setting them to "To" and "From" pragmatically.
//Array building
if (controlsJson == null) {
  controlsJson = [];
}
if (controlsJson[date] == null) {
  controlsJson[date] = [];
}
var pusher = [];
pusher["Index"] = index;
pusher[type] = time;
controlsJson[date].push(pusher);

除了通过匹配索引键解决问题之外,还有其他方法可以改进此问题吗?

最佳答案

如果您使用以下格式表示数据,那么遍历会容易得多:

let state = {
  Monday: {
    1: {
      To: 200,
      From: 1200
    },
    2: {
      To: 1300,
      From: 1400
    }
  },
  Tuesday: {
    1: {
      To: 100,
      From: 200
    },
    2: {
      To: 1000,
      From: 1200
    },
    3: {
      To: 1300,
      From: 1500
    }
  }
}

state = { ...state, Tuesday: { ...state.Tuesday, 2: { To: 1500, From: 1400 } } }

console.log(state)

如果您不关心不变性,以下方法也可以:

let state = {
  Monday: {
    1: {
      To: 200,
      From: 1200
    },
    2: {
      To: 1300,
      From: 1400
    }
  },
  Tuesday: {
    1: {
      To: 100,
      From: 200
    },
    2: {
      To: 1000,
      From: 1200
    },
    3: {
      To: 1300,
      From: 1500
    }
  }
}

state["Tuesday"][2] = { To: 1500, From: 1400 };

console.log(state)

关于javascript - 根据匹配键合并两个多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42446747/

相关文章:

javascript - 如何在 Rhino 中创建 'real' JavaScript 数组

c# - 如何将 Json 反序列化为简单的字典

javascript - 有没有一种简单的方法来匹配字节数组中的字节数组?

javascript - querySelector 不适用于类,但适用于 id

javascript - Sequelize — 如何获取关联模型?

javascript 调用类方法

arrays - 从只有 3 个有效移动的数组制作最大长度升序子数组

javascript - 在 for 循环中在对象中添加 +1 键

java - Hibernate 序列化中的字符串到 GML 对象

javascript - 如何从多维数组构建一个简单的字符串?