如何在javascript中对类型化数组进行排序?

如何在javascript中对类型化数组进行排序?,javascript,performance,typed-arrays,Javascript,Performance,Typed Arrays,例如,我键入了如下数组: var a = new Int32Array([3,8,6,1,6,9]); 当我尝试调用a.sort()时,它不起作用 排序类型化数组的最佳方法是什么? 关于性能,我们可以比常规数组更快地对类型化数组进行排序吗?JavaScript数组方法的定义方式使其适用于任何类似数组的对象,而不仅仅是数组的实际实例。因此,您可以使用: Array.prototype.sort.call(a, function(a, b) { return a - b; }); 自定义回调是必

例如,我键入了如下数组:

var a = new Int32Array([3,8,6,1,6,9]);
当我尝试调用
a.sort()
时,它不起作用

排序类型化数组的最佳方法是什么?
关于性能,我们可以比常规数组更快地对类型化数组进行排序吗?

JavaScript数组方法的定义方式使其适用于任何类似数组的对象,而不仅仅是
数组的实际实例。因此,您可以使用:

Array.prototype.sort.call(a, function(a, b) { return a - b; });

自定义回调是必要的,因为JS默认情况下按字典顺序对值进行排序。另请参见。

ECMAScript 2015语言规范引入了

var a=newint32array([3,8,6,1,6,9]);

console.log(a.sort());//[1,3,6,6,8,9]
你试过
[].sort.call(a)
?@Felix Kling:^答案(我宁愿使用
Array.prototype.call
)ES6引入了
TypedArray.prototype.sort
:我比较了这种排序方式的类型数组和常规数组。它在速度上似乎没有任何明显的差别。为什么呢?它对类型化数组的排序不应该比常规数组快吗?@dartfish
array.prototype.sort
本身速度非常慢,因为。如果您对性能有一点担心,您最好自己实现一个专门的排序。这句话来自哪里?除了示例代码中的注释(这几乎不是规范的一部分)之外,没有提到这一点。@riv它来自链接规范,在第22.2.3.25节中-