由于我正在试用 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/