javascript - 没有唯一键的 lodash indexBy

标签 javascript node.js underscore.js lodash

我如何使用非唯一键索引数组。我尝试使用 lodash indexBy,但它没有给出预期的结果。

var keys = [
  { 'dir': 'left', 'code': 97 },
  { 'dir': 'left', 'code': 100 },
  { 'dir': 'right', 'code': 50 },
  { 'dir': 'right', 'code': 51 }
];
var a = _.indexBy(keys, 'dir');

结果:

{ left: { dir: 'left', code: 100 },
  right: { dir: 'right', code: 51 } }

预期结果:

{ left: [{ dir: 'left', code: 100 }, { 'dir': 'left', 'code': 97 }],
  right: [{ dir: 'right', code: 51 }, { 'dir': 'right', 'code': 50 }] }

最佳答案

您需要使用 _.groupBy为此,像这样

console.log(_.groupBy(keys, 'dir'));

会打印

{ left: [ { dir: 'left', code: 97 }, { dir: 'left', code: 100 } ],
  right: [ { dir: 'right', code: 50 }, { dir: 'right', code: 51 } ] }

关于javascript - 没有唯一键的 lodash indexBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27887945/

相关文章:

Javascript 在大对象中查找嵌套键

javascript - 有没有优雅的函数可以在数组中查找数组? JavaScript

javascript - 如何在呈现浏览器中的任何内容之前加载大图像

node.js - 具有不同路径的代理下的 Next.js

node.js - 环回和mongo中相同的 'find'查询在不同服务器中有不同的行为

javascript - underscore.js _.where 用于字符串和对象

javascript - 有人可以解释一下这个 JavaScript/Angular 代码是如何工作的吗?

javascript - React - Redux 根据 UI 状态分派(dispatch)一个 Action

javascript - 如何在 WordPress 中将 $wpdb->get_results 作为 json 返回?

javascript - Node-webkit 中的音频使用 node js 和 Web Audio API