在underscore.js中尋找一個函數,它將採用2個數組並返回一個新的唯一值數組?像_withoutunderscore.js - 是否有一個函數產生一個數組,它是兩個數組的差異?
_.without([0, 1, 3, 9], [1, 3]);
東西,我想=> [0,9]
返回
看來_without的第二arg是值的列表,而不是一個數組。如果下劃線具有我正在尋找的特定功能,那麼任何人都知道 ?或者我可以使用一個存在數組並將其轉換爲函數期望的值。
感謝,
〜在聖地亞哥CK
在underscore.js中尋找一個函數,它將採用2個數組並返回一個新的唯一值數組?像_withoutunderscore.js - 是否有一個函數產生一個數組,它是兩個數組的差異?
_.without([0, 1, 3, 9], [1, 3]);
東西,我想=> [0,9]
返回
看來_without的第二arg是值的列表,而不是一個數組。如果下劃線具有我正在尋找的特定功能,那麼任何人都知道 ?或者我可以使用一個存在數組並將其轉換爲函數期望的值。
感謝,
〜在聖地亞哥CK
_.without.apply(_, [arr1].concat(arr2))
[[0, 1, 3, 9]].concat([1, 3])
爲[[0, 1, 3, 9], 1, 3]
;
_.without.apply(_, [[0, 1, 3, 9], 1, 3])
是_.without([0, 1, 3, 9], 1, 3)
你已經有了一個非常好的_.without
方法。所以只需將一個數組轉換爲可以傳入函數的值列表即可。這是Function.prototype.apply
但是這兩種解決方案都是正確的,我喜歡你轉換爲函數需要的參數樣式。做得好!!! – Hcabnettek 2011-04-19 21:18:14
這是不贊成的,應該使用_.difference – adriantoine 2013-10-01 12:21:18
var result = _.reject([0, 1, 3, 9], function(num) {
return _.include([1, 3], num);
});
任何描述你的代碼片段在做什麼? – kaiser 2013-05-30 10:00:45
@kaiser:'reject'帶有一個列表和一個充當「真相測試」的函數來詢問是否應該拒絕每個項目。在這種情況下,指定該函數來檢查給定項目是否包含在列表'[1,3]'中。如果是,它將返回「true」,並且「reject」將拒絕該值。回到頂層,'reject'被賦予原始列表,並將返回一個沒有任何被拒絕的值的新列表。 – 2013-05-30 18:23:44
目的_.difference
功能應該給你你在找什麼:
_.difference([0, 1, 3, 9], [1, 3]); // => [0, 9]
我沒有看到的一個函數是在[[0,1,3,9],[1,3,12])給出[0,9, 12。我認爲這是「disjunction」 – grantwparks 2012-03-31 22:34:03
這應該是接受的答案 – 2015-07-02 16:14:12
羅短跑擴展下劃線,這裏是你所需要的:http://lodash.com/docs#xor
_ .xor
創建一個數組,它是所提供數組的對稱差異。見http://en.wikipedia.org/wiki/Symmetric_difference。
_.xor([1, 2, 3], [5, 2, 1, 4]);
// → [3, 5, 4]
感謝您的編輯傑夫。錯字。 – Hcabnettek 2011-04-19 20:29:34