我做了一个对象数组,并能够通过对象的属性之一进行排序(请参阅底部代码)。但我硬编码哪个属性来排序(在这种情况下“名称”)。我将如何能够传递给排序方法属性,我期待排序?我试图tmpArray.sort(功能(A,B,sortBy),但有一个没有汤给你答复。我知道我可以用Javascript:数组,对象,排序和原型?
array.prototype.thing = function(){ alert("hello world"); }
修改数组对象,但是可以让我修改现有的方法?一样的Array.sort感谢
$(document).ready(function(){
$(".sort").click(function() {
var tmpArray = new Array;
for (i=0; i<5; i++) {
var tmpObject = new Object;
switch(i) {
case 0 :
tmpObject.name = "Amy";
tmpObject.rank = 1;
tmpObject.priority = 3;
tmpObject.item = "Blue Item";
break;
case 1 :
tmpObject.name = "Jen";
tmpObject.rank = 2;
tmpObject.priority = 0;
tmpObject.item = "Red Item";
break;
case 2 :
tmpObject.name = "Mike";
tmpObject.rank = 3;
tmpObject.priority = 2;
tmpObject.item = "Green Item";
break;
case 3 :
tmpObject.name = "Raul";
tmpObject.rank = 4;
tmpObject.priority = 2;
tmpObject.item = "Yellow Item";
break;
case 4 :
tmpObject.name = "Lola";
tmpObject.rank = 5;
tmpObject.priority = 1;
tmpObject.item = "Blue Item";
break;
}
tmpArray.push(tmpObject);
}
tmpArray.sort(function(a, b) {
var nameA=a.name.toLowerCase(), nameB=b.name.toLowerCase()
if (nameA < nameB) //sort string ascending
return -1
if (nameA > nameB)
return 1
return 0 //default return value (no sorting)
});
console.log(tmpArray);
});
});
+1击败我! – mellamokb
谢谢罗伯特,那正是我所需要的。我不打算搞乱数组方法,我想我会这样做,然后打破整个互联网,然后每个人都生我的气......:D – PruitIgoe