要按照字符串数组对对象数组进行排序,可以使用Array.sort()
函数以及一个自定义的比较函数。
下面是一个示例代码:
// 定义对象数组
var objArray = [
{ name: 'John', age: 25 },
{ name: 'Adam', age: 30 },
{ name: 'Sarah', age: 20 }
];
// 定义字符串数组
var strArray = ['Adam', 'John', 'Sarah'];
// 自定义比较函数
function compareStrings(a, b) {
// 获取a和b在字符串数组中的索引
var indexA = strArray.indexOf(a.name);
var indexB = strArray.indexOf(b.name);
// 使用索引值进行比较
if (indexA < indexB) {
return -1; // a排在b之前
} else if (indexA > indexB) {
return 1; // a排在b之后
} else {
return 0; // a和b顺序相同
}
}
// 使用比较函数对对象数组进行排序
objArray.sort(compareStrings);
// 打印排序后的结果
console.log(objArray);
运行上述代码,会输出以下结果:
[
{ name: 'Adam', age: 30 },
{ name: 'John', age: 25 },
{ name: 'Sarah', age: 20 }
]
在这个示例中,我们使用strArray.indexOf(a.name)
和strArray.indexOf(b.name)
获取每个对象在字符串数组中的索引,然后根据索引值进行比较。最后,使用objArray.sort(compareStrings)
对对象数组进行排序。