我有 2 个数组,一个具有“产品”,另一个具有“productsExcluded”。
我必须从最终列表“产品”中排除“产品排除”数组中的产品,该列表显示在<option>
for(let i=0;i<$scope.productos.length;i++){
$('#select-servicio').append($('<option value='+ $scope.productos[i].idProducto +' >' + $scope.productos[i].descripcion + '</option>'));
}
我的想法是用 2 个嵌套的 fors 来遍历它们,但是数组有超过 100,000 个值,所以效率会非常低。
使用
includes()
for里面的方法所以你只有一个,如下在它的一部分中
console.log(${element})
,您可以将其替换为从产品数组中删除排除产品的代码你好吗?
利用
includes()
,filter
和spread operator
, 可以实现过滤, 将要显示的产品加入到一个 select 中, 如下:HTML
JS
Spreat算子将2个数组转换成一个新的数组,其值由filter()负责返回,与includes()一起验证被排除的数组返回的产品不在products数组中,从而生成新数组。然后只通过将结果插入到
select>
干杯!