【问题标题】:any lodash functions for removing array that is matching from main array用于从主数组中删除匹配的数组的任何 lodash 函数
【发布时间】:2015-03-12 06:18:54
【问题描述】:

我有两个数组 available, selected 有一些值。我有另一个名为 finalAvailable 的数组,我希望同时从 available 数组中删除那些存在于 selected 中的数组> 阵列。下面是一个例子

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])
    }
}

【问题讨论】:

    标签: javascript arrays json lodash


    【解决方案1】:

    试试这个

    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));
    <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>

    【讨论】:

      【解决方案2】:

      尝试不使用 Lodash:

      let available = ["A", "B", "C", "D", "E"];
      let selected = ["B", "C"];
      
      let finalAvailable = available.filter(item => selected.indexOf(item) === -1);
      console.log(finalAvailable);
      

      【讨论】:

        猜你喜欢
        • 2018-06-13
        • 1970-01-01
        • 1970-01-01
        • 2018-02-27
        • 2015-10-22
        • 2021-04-02
        • 1970-01-01
        • 1970-01-01
        • 2019-07-19
        相关资源
        最近更新 更多