2013-10-21 36 views
1

我有數組的數組,很像:下劃線:調用_.sample數組的數組上引發錯誤

[[0,0], [0,1], [0,2], [0,3]...] 

我想用下劃線的_.sample方法採樣陣列的N個元件:

exampleArr = [[0,0], [0,1], [0,2], [0,3]...] 
_.sample(exampleArr, 3) // [[0,3], [1,2], [3,4]] 

我的實現是因爲它得到一樣簡單,而且我敢肯定,下劃線文件加載正確 - 我可以在陣列(如隨機播放)上使用其他下劃線的功能,只是沒有品嚐。

我得到一個奇怪的錯誤,就像Underscore無法處理數組數組。

Uncaught TypeError: Object function (obj) { 
    if (obj instanceof _) return obj; 
    if (!(this instanceof _)) return new _(obj); 
    this._wrapped = obj; 
} has no method 'sample' 

不知道我的問題是什麼?

+0

我會檢查你的控制檯 - >網絡,並確保所有的文件加載正確。它似乎沒有找到underscore.js通過沒有方法'示例' –

+0

謝謝,欣賞反饋。它認識到其他下劃線函數,所以我不認爲這是一個文件加載問題。例如,我可以對數組進行洗牌。這只是不能識別示例方法。 – mss

+1

您可以搜索您的underscore.js副本作爲樣本,看看該方法是否存在? –

回答

2

我想你使用的是沒有示例函數的下劃線的版本。你需要有1.5.2。您可以通過輸入_.VERSION來檢查當前版本。如果它比任何東西都少,你需要從它們的頁面下載1.5.2或更高版本: http://underscorejs.org/

+2

從1.5.2的更改日誌中:添加了一個樣本函數,用於從數組中抽取隨機元素。 –