JavaScript 按字符串属性值对对象数组进行排序
在本文中,我们将看到如何按字符串属性值对对象数组进行排序。可以使用自定义函数来对对象数组进行排序。
在这里,我们有一些常见的方法来按字符串属性值对对象数组进行排序:
- 使用带有自定义比较函数的sort()
- 使用自定义函数排序
- 使用带有比较函数和toLowerCase()方法的sort()
方法1:使用带有自定义比较函数的sort()
在这种方法中,使用带有自定义比较函数的sort(),该函数利用localeCompare()对对象数组按字符串属性值进行排序。
示例: 在这个示例中,我们使用了上面解释的方法。
const GFG_object = [
{ name: "Rahul", age: 30 },
{ name: "Aman", age: 25 },
{ name: "Deepak", age: 35 }
];
let result = GFG_object.sort((a, b) =>
a.name.localeCompare(b.name));
console.log(result);
输出
[
{ name: 'Aman', age: 25 },
{ name: 'Deepak', age: 35 },
{ name: 'Rahul', age: 30 }
]
方法2:通过用户定义的函数排序
这个函数通过属性比较对象数组。这个示例比较对象的l_name属性,如果l_name较小,则放在左边,否则放在右边。
示例: 在这个示例中,我们使用了上述解释的方法。
let GFG_Object = [
{ f_name: 'Geeks', l_name: '_2' },
{ f_name: 'for', l_name: '_1' },
{ f_name: 'GFG', l_name: '_3' }
];
GFG_Object.sort(compare);
function compare(a, b) {
if (a.l_name < b.l_name)
return -1;
if (a.l_name > b.l_name)
return 1;
return 0;
}
console.log(GFG_Object);
输出
[
{ f_name: 'for', l_name: '_1' },
{ f_name: 'Geeks', l_name: '_2' },
{ f_name: 'GFG', l_name: '_3' }
]
方法3:使用sort()函数和toLowerCase()方法进行排序
在这种方法中,我们使用sort()函数和toLowerCase()方法来对一个基于字符串属性的对象数组进行大小写不敏感的排序。
示例: 在这个示例中,我们使用了上述解释的方法。
let GFG_Object = [
{ f_name: 'Geeks', l_name: '_2' },
{ f_name: 'for', l_name: '_1' },
{ f_name: 'GFG', l_name: '_3' }
];
GFG_Object.sort((a, b) =>
a.f_name.toLowerCase().localeCompare(b.f_name.toLowerCase()));
console.log(GFG_Object);
输出
[
{ f_name: 'for', l_name: '_1' },
{ f_name: 'Geeks', l_name: '_2' },
{ f_name: 'GFG', l_name: '_3' }
]
极客教程