var a = [1,2,3,4,5,6];var b = [2,3,6];數組b 是數組a 的子集,a中去掉包含b的元素,最優的方案有哪些?
https://lodash.com/docs/4.17....
雷雷 雷雷
使用Array的filter方法就可以解決你的問題,具體實作很簡單,別人也有答案。
filter
如果你不介意引用第三方函式庫,那麼推薦你引入lodash,這個函式庫包含了大量處理陣列的方法,如果你對陣列操作場景比較多,強烈建議使用。
它有個函數專門處理這個問題,叫做difference. 當然了,前面有個同學說用without也可以,只不過用起來沒有difference方便。
下面程式碼中的"_"是引入lodash後一個預設的對象,所有lodash定義的方法都在它下面,有點像是引入jQuery後使用的"$"
var a = [1,2,3,4,5,6]; var b = [2,3,6]; var result = _.difference(a, b); // result=[1,4,5]
何必用loadash,直接用数组的filter方法就行了:
loadash
var a = [1,2,3,4,5,6]; var b = [2,3,6]; var ans = a.filter((n) => !b.includes(n)); console.log(ans); //[1, 4, 5];
https://lodash.com/docs/4.17....
雷雷 雷雷
使用原生方式解決
使用Array的
filter
方法就可以解決你的問題,具體實作很簡單,別人也有答案。借助第三方函式庫解決
如果你不介意引用第三方函式庫,那麼推薦你引入lodash,這個函式庫包含了大量處理陣列的方法,如果你對陣列操作場景比較多,強烈建議使用。
它有個函數專門處理這個問題,叫做difference. 當然了,前面有個同學說用without也可以,只不過用起來沒有difference方便。
下面程式碼中的"_"是引入lodash後一個預設的對象,所有lodash定義的方法都在它下面,有點像是引入jQuery後使用的"$"
何必用
loadash
,直接用数组的filter
方法就行了: