在JavaScript中,可以使用Array.prototype.sort()方法对数组进行排序。对于包含JSON数据的数组,可以使用sort()方法并传入一个回调函数来按照特定单词对数据进行排序。
下面是一个示例代码,假设要对包含以下JSON数据对象的数组按照“name”属性中包含“John”的数据进行排序:
const data = [ { name: "John Doe", age: 25, gender: "male" }, { name: "Jane Smith", age: 30, gender: "female" }, { name: "Bob Johnson", age: 40, gender: "male" }, { name: "John Smith", age: 35, gender: "male" }, { name: "Mary Johnson", age: 28, gender: "female" } ];
// 定义回调函数,返回值为-1表示第一个元素排在前面,为1则表示第二个元素排在前面 function sortByKeyword(keyword) { return function(a, b) { const aContainsKeyword = a.name.indexOf(keyword) !== -1; const bContainsKeyword = b.name.indexOf(keyword) !== -1;
if (aContainsKeyword && !bContainsKeyword) {
return -1;
} else if (!aContainsKeyword && bContainsKeyword) {
return 1;
} else {
return 0;
}
} }
// 调用sort()方法并传入回调函数进行排序 const sortedData = data.sort(sortByKeyword("John"));
console.log(sortedData);
输出应为:
[ { name: "John Doe", age: 25, gender: "male" }, { name: "John Smith", age: 35, gender: "male" }, { name: "Jane Smith", age: 30, gender: "female" }, { name: "Bob Johnson", age: 40, gender: "male" }, {