以下是按某些属性对对象数组进行排序的函数。按属性排序对象的JavaScript数组时,数字出了什么问题
function createCompareFunc(propertyName){
return function(obj1, obj2){
var val1=obj1[propertyName];
var val2=obj1[propertyName];
return val1-val2;
}
}
var data=[{name:'a', age:12},{name:'b',age:5}];
console.log(typeof data[0]['age']); //number
console.log(data.sort(createCompareFunc('name')));
//[Object{name="a", age=12},Object{name="b",age=5}]
console.log(data.sort(createCompareFunc('age')));
//[Object{name="a", age=12},Object{name="b",age=5}], but I want to get '[Object{name="b",age=5},Object{name="a", age=12}]'
数字有什么问题?
在比较函数中是'val2 = obj1 [propertyName]'是一个错字,还是它实际上在你的代码中? – mgibsonbr 2012-08-11 08:04:02