假设我有一个包含(随机)整数和字符串元素的数组:
var array = ["T", 5, 2, 9, "A"];
Run Code Online (Sandbox Code Playgroud)
可能的元素或参考是:
var ref = ["A", "K", "Q", "J", "T", 9, 8, 7, 6, 5, 4, 3, 2];
Run Code Online (Sandbox Code Playgroud)
A是最高(最有价值),K是第二最有价值,等等.正如你们大多数人所看到的,这代表了一副牌中的不同牌.
我应该如何进行array上述排序,以获得以下输出:
array = ["A", "T", 9, 5, 2];
Run Code Online (Sandbox Code Playgroud)
由于我正在尝试学习javascript,我更喜欢纯粹的javascript解决方案,但我也想知道是否有一个jQuery函数来完成这个任务?
这是一种可能的简短方法:
array.sort(function(a, b) {
return ref.indexOf(a) - ref.indexOf(b);
});
Run Code Online (Sandbox Code Playgroud)
注意:请注意该Array.prototype.indexOf方法限制了浏览器兼容性,因此如果需要,请使用填充程序.但是jQuery有自己的跨浏览器实现$.inArray().