javascript - 如何对jquery数组进行分组

标签 javascript jquery

我有两个数组需要合并在一起,它们看起来像这样:

var array1 = 
[
  {x: "1/12/2011", y: 4149.9}
  {x: "2/12/2011", y: 4094.5}
  {x: "3/12/2011", y: 3606.8}
]

var array2 =
[
  {x: "1/12/2011", z: 3500}
  {x: "2/12/2011", z: 3600}
  {x: "3/12/2011", z: 3700}
]

我想根据 x 合并它们,其中所有属性都保存在最终对象中。

预期输出:

var excpected =
[
  {x: "1/12/2011", y: 4149.9, z: 3500}
  {x: "2/12/2011", y: 4094.5, z: 3600}
  {x: "3/12/2011", y: 3606.8, z: 3700}
]

我找到了 $.extend 和 $.merge,但未能成功实现我的需求。有什么指点吗?

最佳答案

虽然其余的答案几乎都是正确的,但他们错过了匹配 x

的要点

var array1 = [{
  x: "1/12/2011",
  y: 4149.9
}, {
  x: "2/12/2011",
  y: 4094.5
}, {
  x: "3/12/2011",
  y: 3606.8
}]

var array2 = [{
  x: "1/12/2011",
  z: 3500
}, {
  x: "2/12/2011",
  z: 3600
}, {
  x: "3/12/2011",
  z: 3700
}]

var excpected = array1.map(item => {
  var fromArray2 = array2.filter(array2Item => array2Item.x === item.x)[0];
  item.z = fromArray2.z;
  return item;
})

console.log(excpected);

关于javascript - 如何对jquery数组进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47713191/

相关文章:

javascript - 漂亮的格式化代码不会换行

jQuery 2.0 放弃了对 IE6/7/8 的支持,那么 1.x 分支会维持多久呢?

javascript - 对象内部的函数

javascript - 限制 jQuery/CSS3 旋转逻辑总是顺时针旋转

javascript - 使用 unshift() 使用 javascript 将表单输入添加到数组

javascript - 如何删除具有属性 contentEditable 的 div 中的 HTML 元素?

javascript - 使用 jQuery 或 JavaScript 比较表字符串

javascript - IE7 JSON 响应 : Object Expected. 。适用于 Chrome 和 FireFox

javascript - 使用脚本加载器注入(inject)脚本访问全局变量

javascript - Select2.js 错误 : Cannot read property 'length' of undefined