使用 Immutabel.js / 函数式 JS 过滤一个列表中的元素

Filter the elements of one list with an other using Immutabel.js / functional JS

我有一个包含 all 项目的数组和另一个包含 selected 项目的数组。然后我想创建第三个数组 available,它由 all 组成,但 selected 中包含的元素除外。

例如

all = [1,2,3]
selected  = [3]
available =  [1,2]

如何筛选所有并选择创建可用的?

如果您已经在使用 immutable.js,您正在寻找的操作是 Set class 的 .subtract() 方法。

[在函数式编程中,术语 "filter" 通常表示从源列表中与给定谓词匹配的元素返回新列表的操作]

这应该有效

var array1= [1, 2, 3];
    var array2= [3];
    var results = [];
    for (var i = 0; i < array1.length ; i++) {
  
    var result=false;
    for (var n = 0; n < array2.length ; n++) {
         if (array2[n] === array1[i]) {
            result=true;
          }
          
          
        }
        if(!result)
        {
        results.push(array1[i]);
        }
    }
    
    console.log(results);