题目:有一个对象数组,对象具有姓名、年龄等属性。现在需要对数组进行排序,排序的规则如下:会提供一个字符串数组,数组中的元素即对象的姓名。现在对象数组应该按照字符串数组中字符串出现的顺序对对象进行排序。
要按照字符串数组中字符串出现的顺序对对象数组进行排序,可以使用自定义的排序函数来实现。以下是一个示例代码,使用JavaScript语言来演示:
// 对象数组示例
var people = [
{ name: "Alice", age: 25 },
{ name: "Bob", age: 30 },
{ name: "Charlie", age: 20 },
{ name: "David", age: 35 }
];
// 字符串数组示例
var names = ["Charlie", "Alice", "David", "Bob"];
// 自定义排序函数
function customSort(a, b) {
// 获取字符串在数组中的索引
var indexA = names.indexOf(a.name);
var indexB = names.indexOf(b.name);
// 比较索引值并返回排序结果
return indexA-indexB
}
// 使用自定义排序函数对对象数组进行排序
people.sort(customSort);
// 输出排序后的结果
console.log(people);
在这个示例中,我们首先定义了一个对象数组 people
和一个字符串数组 names
,然后定义了一个自定义排序函数 customSort
。该函数比较两个对象的 name
属性在 names
数组中的索引,并根据索引值返回排序结果。
最后,我们使用 people.sort(customSort)
对对象数组进行排序,排序结果将按照字符串数组 names
中字符串出现的顺序进行排序。在示例中的输出结果中,对象数组的排序顺序将会是 Charlie
、Alice
、David
、Bob
。