我们可以使用JavaScript的sort()
方法来对包含数字的字符串进行排序,但是需要使用一个函数作为参数来指定特定的排序顺序。该函数应该比较两个字符串的数值部分,而不是直接比较整个字符串。下面是一个示例代码,用于按包含数字的字符串属性number
对对象数组进行排序:
// 定义包含数字的字符串属性的对象数组
const arr = [
{ name: 'John', number: 'item2' },
{ name: 'Jane', number: 'item10' },
{ name: 'Bob', number: 'item1' },
{ name: 'Mary', number: 'item8' },
];
// 比较两个包含数字的字符串
function compareNumbers(str1, str2) {
const num1 = parseInt(str1.match(/\d+/)[0], 10);
const num2 = parseInt(str2.match(/\d+/)[0], 10);
return num1 - num2;
}
// 对对象数组按数字属性值进行排序
arr.sort((a, b) => compareNumbers(a.number, b.number));
console.log(arr);
// Output: [
// { name: 'Bob', number: 'item1' },
// { name: 'John', number: 'item2' },
// { name: 'Mary', number: 'item8' },
// { name: 'Jane', number: 'item10' }
// ]