使用带参数的.sort重新排序数组



我有一个函数来重新排序数组中的对象,我调用该函数与对象属性,我想排序,但我不知道如何设置回调函数使用参数。我尝试使用eval(),但没有成功。它不能正常工作。

function order(param){
const newOrder = arrayContent.sort((first,second) => (`${first}.${param}` > `${second}.${param}`) ? 1 : -1);
};
order('name')

这很容易实现。您可以使用'点符号'(例如object.name)或使用方括号(例如object['name'])来引用对象,您可以将任何字符串放在方括号内以引用特定的'内部字段'

let arrayContent = [{number:3,name:'Alice'},{number:2, name:'Maxim'}]; //your array
let order = param => arrayContent.sort((first,second) => first[param] < second[param]?1:-1);

order('name');
console.log(arrayContent);
order('number');
console.log(arrayContent);

最新更新