2015-06-16 58 views
1

出於某種原因,我無法使用.slice()與Float32Array一起使用。如果你通過數組替換Float32Array,它可以很好地工作。 Float32Array的文檔列出.slice()作爲一種方法,所以我不明白是否有bug或什麼的?或者是凌晨2點,我看不到明顯的東西?爲什麼不是.slice()與Float32Array()一起工作,而是與Array()一起工作? [JavaScript]

function test() 
{ 
    var buf = new Float32Array(10); 
    for (var i = 0; i < 10; i++) { 
     buf[i] = i*0.3; 

    } 
    var test = buf.slice(2,5); 
    alert("Hello, Coding Ground!" + test[0]); 
} 
test(); 

回答

0

它看起來像它不是在Chrome還沒有,但它的工作在Chrome Canary版,這意味着它的未來Chrome瀏覽器很不久。在控制檯中運行以查看切片是否已經工作。

new Float32Array().slice 

我不想我的類型數組轉換成的,因爲性能問題規則排列,所以我正在尋找一個解決辦法了。

編輯: 我剛剛寫了一個適用於我的Float32Array片的墊片。很快,只要Chrome開始支持分片方法,它就會被忽略。

if (!Float32Array.prototype.slice) { 
    Float32Array.prototype.slice = function (begin, end) { 
     var target = new Float32Array(end - begin); 

     for (var i = 0; i < begin + end; ++i) { 
      target[i] = this[begin + i]; 
     } 
     return target; 
    }; 
} 
相關問題