簡體   English   中英

用JavaScript從另一個列表中減去一個列表中的值

[英]Subtracts values one list from another in javascript

如何從var a = [1,2,2,2,3] var b=[2]中存在的var a = [1,2,2,2,3]刪除所有值如果b變量中存在a值,則必須刪除所有出現的值

 var a = [1,2,2,2,5];
 var b = [2];
 const result = a.filter(function(el){

  return /// which condition .?

 });

如何刪除b var值。 我們有很多邏輯,請簡要回答

一個簡單的解決方案是使用Array#filter ,並使用Array#indexOf檢查值是否存在:

 var a = [1, 2, 2, 2, 5]; var b = [2]; var result = a.filter(function(n) { return b.indexOf(n) === -1; }); console.log(result); 

但是,這需要第二個數組的冗余迭代。 更好的解決方案是使用Array#reduceb創建一個字典對象,並在過濾中使用它:

 var a = [1, 2, 2, 2, 5]; var b = [2]; var bDict = b.reduce(function(d, n) { d[n] = true; return d; }, Object.create(null)); var result = a.filter(function(n) { return !bDict[n]; }); console.log(result); 

您可能需要Set為不需要的項目。

 var a = [1, 2, 2, 2, 5], b = [2], result = a.filter((s => v => !s.has(v))(new Set(b))); console.log(result); 

通過使用數組的filter()嘗試以下操作:

 var a = [1,2,2,2,5]; var b = [2]; var c = a.filter(item => !b.includes(item)) console.log(c) 

使用array.filter

 var first = [1, 2, 2, 2, 5]; var second = [2]; var result = first.filter(function(n) { return second.indexOf(n) === -1; }); console.log(result); 

  var a = [1,2,2,2,5]; var b = [2]; var result= a.filter(function(x) { return b.indexOf(x) < 0; }); console.log(result) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM