javascript - 如何使用 Lo-Dash 连接数组

标签 javascript functional-programming lodash

由于我正在试用 Lo-Dash,我想知道如何连接和排序两个数组?

A1: [ 3, 1 ]

A2: [ { 1: 'val 1' }, { 2: 'val 2' }, { 3: 'val 3' }, { 4: 'val 4' }, … ]

A1 join A2 orderBy Vals: [ { 1: ‘val 1’ }, { 3: ‘val 3’ }]

使用 _.sortBy 排序似乎很简单。但是如何执行连接呢?

最佳答案

我将不得不做出一些假设来回答您的问题。首先,像路易斯mentioned在评论中,A2 不是有效的 Javascript。因此,让我们按照 Louis 的建议,改用格式 [{ 1: 'val 1' }, ...]。其次,A2 中的对象是否保证只有一个键,还是我们需要搜索这些键?为简单起见,我假设是前者。

鉴于这些假设,以下将起作用:

_.filter(A2, function(d) {
  return _.contains(A1, _.parseInt(_.keys(d)[0]));
});

与 Lo-dash 的大多数函数不同,这里使用的函数不会从普通的 Javascript 执行太多抽象。给定一个支持 ECMAScript 5 的浏览器,您可以用以下内容替换 Lodash 包装器以获得相同的功能:

A2.filter(function(d) {
  return A1.indexOf(parseInt(Object.keys(d)[0])) !== -1;
});

关于javascript - 如何使用 Lo-Dash 连接数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22263307/

相关文章:

functional-programming - fork 列表(函数式编程)的操作的正确术语是什么?

javascript - 在 json 中组合两个数组

javascript - 我无法在 JavaScript 中验证我的游戏的随机单词

javascript - 自定义 jquery ui slider

javascript - 通过 javascript 和 ajax 填充 HTML 页面的最佳策略

haskell - 是否有可能在 Haskell 98 中获得无限种类的错误?

testing - 是否有一个命令可以从 clojure.test 和 Speclj 运行测试?

javascript - 用 null 填充缺失值

javascript - 如何使用lodash通过键将一个数组对象添加到另一个二维数组

javascript - Angular : chaining promises over forEach loop