使用JavaScript 陣列優化集合差值計算
使用儲存為JavaScript 陣列的集合時,有效計算它們的差值(A - B) 變成至關重要的。以下是完成此任務的一些改進方法:
基於本機函數的方法:
本機filter() 方法提供了一個優雅而簡潔的解決方案:
var diff = A.filter(function(x) {
return B.indexOf(x) 這會迭代 A 並選擇 B 中未找到的元素,本質上是執行集合差異運算。
Gecko 特定最佳化:
對於基於Gecko 的瀏覽器(例如Firefox),Array.prototype.subtract() 方法允許採用更專門的方法:
var diff = A.subtract(B);
此方法直接計算數組之間的差異,可能會提高效能。
輕量級庫替代方案:
雖然本機函數足以滿足大多數情況,但輕量級庫替代方案:
var diff = _.difference(A, B);
var diff = _.difference(A, B);
處理重複元素:
var uniqueA = _.uniq(A);
var uniqueB = _.uniq(B);
var diff = _.difference(uniqueA, uniqueB);
var uniqueA = _.uniq(A);
var uniqueB = _.uniq(B);
var diff = _.difference(uniqueA, uniqueB);
透過利用這些方法,您可以使用 JavaScript 陣列有效且有效率地計算集合差異。方法的選擇取決於瀏覽器相容性和效能要求等因素。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3