Javascript 对包含数字和字符串的二维数组进行排序
我有一个清单如下所示Javascript 对包含数字和字符串的二维数组进行排序,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我有一个清单如下所示 var arr1 = [ [21, "Bowling Ball"], [2, "Dirty Sock"], [1, "Hair Pin"], [5, "Microphone"] ]; 我想按字母顺序把存货分类。我试着用一种简单的冒泡排序技术来做这件事。但它显示了一个错误——“wrappedCompareFn不是一个函数” 函数排序(arr1){ //控制台日志(“工作”); 对于(var i=0;i您可以将内置方法与自定义回调一起使用 so
var arr1 = [
[21, "Bowling Ball"],
[2, "Dirty Sock"],
[1, "Hair Pin"],
[5, "Microphone"]
];
我想按字母顺序把存货分类。我试着用一种简单的冒泡排序技术来做这件事。但它显示了一个错误——“wrappedCompareFn不是一个函数”
函数排序(arr1){
//控制台日志(“工作”);
对于(var i=0;i您可以将内置方法与自定义回调一起使用
sort()
方法对数组中的元素进行适当排序并返回数组。排序不一定是必需的。默认排序顺序根据字符串Unicode代码点
var arr1=[[1,“发夹”]、[21,“保龄球”]、[2,“脏袜子”]、[5,“麦克风”];
arr1.排序(函数(a,b){
返回a[1]。localeCompare(b[1]);
});
document.write(“”+JSON.stringify(arr1,0,4)+“”);
这不是冒泡排序。内部循环的初始值应为:for(var j=i+1;…
可能的替代方案:您不清楚,您想按第一列或第二列对其进行排序..有几个疑问…这里的a和b是什么。数组的两个元素是否按顺序排列?a和b是外部数组的元素,例如,它将[21,“保龄球”]
与[2,“脏袜子”]
。对于结果,您需要使用索引访问内部数组的第二个元素。
function sort(arr1){
//console.log("works");
for(var i=0;i<arr1.length;i++){
for(var j=0;j<arr1.length;j++){
// console.log(arr1[j][1].localeCompare(arr1[i][1]));
if(arr1[j][1].localeCompare(arr1[i][1])<0){
var tmp=arr1[i][1];
arr1[i][1]=arr1[j][1];
arr1[j][1]=tmp;
}
}
}
return arr1;
}