Javascript:Array.prototype方法适用于Float32多维数组

时间:2014-08-15 18:51:22

标签: javascript arrays

我在Float32Array中使用Three.js作为顶点位置。我想从随机点开始返回一个新的顶点位置数组。

[0...10000].slice( n, n + 100 ) // Works 

positions      = new Float32Array( amount * 3 ) 
randPositions  = positions.slice( n, n + 100 )  // Doesn't work - undefined is not a function 

但是,当我这样做时,它会返回一个错误(positions已定义且有数据)? Array.prototype方法是否与Float32Array兼容?

1 个答案:

答案 0 :(得分:1)

许多看似数组的东西 - 具有.length属性和数字索引属性 - 使用内置的Array方法,但你必须明确地调用它们:

randPositions = [].slice.call(positions, n, n + 100);

该技巧从一个抛弃的Array实例中获取对“slice”方法的引用,并通过.call()调用它,使你的“position”数组在函数内部为this