function createCoparisonFunction(propertyName){
return function(obj1,obj2){
var v1 = obj1[propertyName] ;
var v2 = obj2[propertyName];
return v1 - v2;
};
}var data = [{name:"Nicolas" , age: 28},{name : "Zachary", age:27}];
data.sort(createCoparisonFunction("name"));
/*for(var i=0;i<data.length;i++){
alert(data[i].name);
}*/
alert(data[0].name);data.sort(createCoparisonFunction("age"));alert(data[0].name);我想问下其中   var v1 = obj1[propertyName] ;
               var v2 = obj2[propertyName];
做何解释?有点不太明白。希望高人指点下

解决方案 »

  1.   

    就是根据对象的某个属性值来 排序楼主 参考下
    http://www.w3school.com.cn/js/jsref_sort.asp
      

  2.   

    那个sort()方法我知道,我是不太明白var v1 = obj1[propertyName] ; 这句如果obj1是对象的话,用obj1.propertyName就行,但我用了obj1.propertyName 结果就出错了谁能给我解释下obj1[propertyName] 是什么意思?先谢谢
      

  3.   

    obj[attr] 当attr是变量或者数字的时候,可以使用这种格式
    比如这样是错误的 var obj = {
    1: 123
    }
    alert( obj.1 )这样就ok了 var obj = {
    1: 123
    }
    alert( obj[1] )
      

  4.   

    "name"或"age"都不是合法的标示符,所以不可以使用.