因为我正在尝试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
排序似乎很简单。但是如何进行联接呢?
答案 0 :(得分:2)
我将不得不做出一些假设来回答你的问题。首先,与评论中的路易mentioned一样,A2
不是有效的Javascript。让我们看看路易斯建议的内容,而是使用格式[{ 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;
});