reactjs - .map 值通过按键分组
问题描述
我进来的数据看起来像:
replaceName =
0: {Number: 1, newNumber:"1", name: "tom" }
1: {Number: 2, newNumber: "2", name: "john" }
2: {Number: 2, newNumber: "2", name: "Greg" }
3: {Number: 3, newNumber: "3", name: "Phil" }
4: {Number: 4, newNumber: "4", name: "tim" }
5: {Number: 4, newNumber: "4", name: "paul" }
我想对相同的值进行分组newNumber
。
输出将与此类似:
result = [
1: {Number: 1, newNumber:"1", name: "tom" }
2: [{Number: 2, newNumber: "2", name: "john" }, {Number: 2, newNumber: "2", name: "Greg" }]
3: {Number: 3, newNumber: "3", name: "Phil" }
4: [{Number: 4, newNumber: "4", name: "tim" }, {Number: 4, newNumber: "4", name: "paul" }]
我尝试了几种方法,我最接近的是:
const result = _.mapValues(replaceName, function(group, key) {
return key === 'newNumber' ? _.groupBy(group, 'newNumber') : group;
});
我知道这在我的场景中不起作用。新对象的键也与我预期的结果中的 newNumber 匹配。
这里的任何帮助将不胜感激。使用 lodash 并做出反应。
解决方案
你误解了怎么groupBy
做。仅使用groupBy
就足够了:
const result = _.groupBy(replaceName, 'newNumber')
推荐阅读
- python - “SocketError: [Errno 61] Connection denied” Selenium with TOR
- python - 显示默认 nginx 页面而不是应用程序
- node.js - Heroku 部署:无法构造“WebSocket”:可能无法从通过 HTTPS 加载的页面启动不安全的 WebSocket 连接
- c - C 控制到达非 void 函数的结尾
- c# - 如何从 nseindia.com 下载 https 文件?
- java - Retrofit Client 的 BaseUrl 的 EditText 示例
- arrays - 根据列值搜索行,更改从输入表中的值找到的行的值 - Google Apps 脚本(表)
- rubyonjets - 如果将新列添加到数据库表中,如何在 Ruby on Jets 中执行
- python - 如果 argparse 参数的目的地相同,如何识别参数动作?
- sql - 由于“SPACE”差异,类似数据的 WHERE 子句出现问题