任何lodash函数用于删除与主数组匹配的数组

时间:2015-03-12 06:18:54

标签: javascript arrays json lodash

我有两个阵列可用已选择,它有一些值。我正在使用另一个名为 finalAvailable 的数组,其中我希望同时来自可用数组的所有数组也删除选中中存在的数组>数组。一个例子如下所示

var available = ["A", "B", "C", "D", "E"];
var selected = ["B", "C"];

所以 finalAvailable 数组就像

var finalAvailable = ["A", "D", "E"];

我已经编写了一个代码来实现这个并且工作正常,但问题是因为我在我的项目中使用Lo-dash我的团队负责人询问是否有任何函数可以使用Lo-dash实现这一点,我搜索但是可以找到任何东西,我不知道我是否遗漏了任何东西。

任何人都可以告诉我Lodash中是否有类似的东西

我的代码如下所示

var available = ["A", "B", "C", "D", "E"];
var selected = ["B", "C"];

var finalAvailable = [];

for (var i = 0; i < available.length; i++) {
    var flag = true;
    for (var j = 0; j < selected.length; j++) {
        if (available[i] == selected[j]) {
            flag = false;
        }
    }
    if (flag) {
        finalAvailable.push(available[i])
    }
}

2 个答案:

答案 0 :(得分:3)

试试这个

&#13;
&#13;
var available = ["A", "B", "C", "D", "E"];
var selected = ["B", "C"];

var finalAvailable = _.filter(available, function (el) {
  return _.indexOf(selected, el) === -1    
});

console.log(finalAvailable);

// or you can use _.difference
console.log(_.difference(available, selected));
&#13;
<script src="https://rawgit.com/lodash/lodash/3.0.1/lodash.min.js"></script>
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

在没有Lodash的情况下尝试:

let available = ["A", "B", "C", "D", "E"];
let selected = ["B", "C"];

let finalAvailable = available.filter(item => selected.indexOf(item) === -1);
console.log(finalAvailable);