如何在 JavaScript 中按属性值对对象数组进行排序 | 您所在的位置:网站首页 › python怎么给数组排序 › 如何在 JavaScript 中按属性值对对象数组进行排序 |
如何在 JavaScript 中按属性值对对象数组进行排序
主题:JavaScript / jQuery 答案:使用sort()方法您可以将 sort() 方法与自定义比较函数结合使用,以按属性值对 JavaScript 对象数组进行排序。 默认排序顺序是升序。 如果两个值相等,自定义比较函数必须返回一个等于零的整数,如果第一个值小于第二个值,则返回一个小于零的整数,如果第一个值大于第二个值,则返回一个大于零的整数。 以下示例将向您展示如何按字符串属性值对对象数组进行排序。 示例 /* Defining comparison function */ function compareNames(a, b) { /* 将名称字符串转换为小写 比较忽略大写和小写 */ var nameA = a.name.toLowerCase(); var nameB = b.name.toLowerCase(); if(nameA < nameB) { return -1; } if(nameA > nameB) { return 1; } /* 名称必须相同 */ return 0; } /* 样本对象数组 */ var objArr = [ { name: "Harry", age: 14 }, { name: "Peter", age: 20 }, { name: "Alice", age: 18 } ]; /* 执行排序 */ objArr.sort(compareNames); console.log(objArr);定义比较函数来比较数字更加容易。 要比较数字而不是字符串,比较函数可以从 a 中减去 b。 这是一个示例,显示如何按数字属性值升序对对象数组进行排序。 示例 /* 定义比较函数 */ function compareAges(a, b) { return a.age - b.age; } /* 样本对象数组 */ var objArr = [ { name: "Harry", age: 14 }, { name: "Peter", age: 20 }, { name: "Alice", age: 18 } ]; /* 执行排序 */ objArr.sort(compareAges); console.log(objArr);请参阅 JavaScript 对象 上的教程,了解有关创建和操作对象的更多信息。 FAQ 相关问题解答以下是与此主题相关的更多常见问题解答: 如何在 JavaScript 中检查对象是否为数组 如何检查数组是否包含 JavaScript 中的对象 如何在 JavaScript 中测试空对象 |
CopyRight 2018-2019 实验室设备网 版权所有 |