javascript - 在 javascript 对象中对重复键执行操作

标签 javascript json node.js object

我有一个非常困惑的 js 对象,我正在尝试清理它。 我是否需要创建一个新对象,在每个重复的键出现时添加一个新元素?

基本上,我正在尝试转变:

[ { device: 4323, action: 'CASH IN' },
  { device: 4325, action: 'ALTER DB' },
  { device: 4323, action: 'Order Pizza' } ]

进入:

[ { device: 4323, action: 'CASH IN, Order Pizza' },
  { device: 4325, action: 'ALTER DB' } ]

最佳答案

使用数组.reduce:

var items = [ { device: 4323, action: 'CASH IN' },
  { device: 4325, action: 'ALTER DB' },
  { device: 4323, action: 'Order Pizza' } ];
  
var res = items.reduce((m, o) => {
  var found = m.find(e => e.device === o.device);
  found ? found.action += `, ${o.action}` : m.push(o);
  return m;
}, []);

console.log(res);

关于javascript - 在 javascript 对象中对重复键执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49727436/

相关文章:

javascript - 在网页中显示 gif 图像的第一帧

javascript - 如何在 angularjs 中编写返回 promise 的异步方法?

node.js - 如何通过 id 合并 Node.js 中的值数组?

javascript - Nodejs HTTP Createserver - 从 html 文件提供服务时不可预测的 javascript 执行

javascript - 为什么 Babel 使用 `arguments` 对象作为可选参数?

javascript - 为什么此 D3.js 条形图上的数据未正确更新?

json - 无法在 React 应用程序中访问来自 Express 服务器的响应数据

json - 如何在蓝图中从 Camel 调用 REST 调用(带有 JSON 主体的 POST)

node.js - 如何在 Express 中构造 app.configure

javascript - 这个页面说 NaN