如何在不修改javascript的情况下对数组进行排序?

时间:2015-03-16 22:24:31

标签: javascript arrays sorting

javascript中的

array.sort()修改了基础数组:

> a = [5,1,3]
[ 5, 1, 3 ]
> a.sort()
[ 1, 3, 5 ]
> a
[ 1, 3, 5 ]
> 

无论如何都要对数组进行排序,以便将排序后的版本作为副本返回。像这样?

> a = [5,1,3]
[ 5, 1, 3 ]
> b = a.some_function()
[ 1, 3, 5 ]
> a
[ 5, 1, 3 ]
> b
[ 1, 3, 5 ]

1 个答案:

答案 0 :(得分:6)

不是没有编写自己的函数来完成它。当然,您可以克隆并然后排序:

var b = a.slice(0).sort();

示例:

var a = [5,1,3];
var b = a.slice(0).sort();
snippet.log("a: " + JSON.stringify(a));
snippet.log("b: " + JSON.stringify(b));
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>