首页 > 代码库 > 用js 对拥有多个对象的数组进行排序
用js 对拥有多个对象的数组进行排序
我们想要根据某个对象属性对数组进行排序。而传递给数组sort()方法的比较函数要接收
两个参数,即要比较的值。可是,我们需要一种方式来指明按照哪个属性来排序。要解决这个问题,
可以定义一个函数,它接收一个属性名,然后根据这个属性名来创建一个比较函数,下面就是这个函
数的定义。
1 function createComparisonFunction(propertyName) { 2 return function (object1, object2) { 3 var value1 = object1[propertyName]; 4 var value2 = object2[propertyName]; 5 if (value1 < value2) { 6 return -1; 7 } else if (value1 > value2) { 8 return 1; 9 } else { 10 return 0; 11 } 12 }; 13 }
1 var data = http://www.mamicode.com/[{name: "Zachary", age: 28}, {name: "Nicholas", age: 29}]; 2 data.sort(createComparisonFunction("name")); 3 alert(data[0].name); //Nicholas 4 data.sort(createComparisonFunction("age")); 5 alert(data[0].name); //Zachary
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。