3 回答
TA贡献1829条经验 获得超9个赞
您可以将要排序的键存储在变量中,然后改用该变量。例子:
var arr1 = [{z: 0, y: 0}, {z: 10, y: 10}, {z: 20, y: 20}, {z: 30, y: 30}, {z: 40, y: 40}]
let keyToSortBy = 'z'
arr1.sort(function(a, b){return a[keyToSortBy] - b[keyToSortBy]});
TA贡献1891条经验 获得超3个赞
如果你是 lodash 的粉丝。
import _ from "lodash"
let key = 'z' // dynamic key
_.sortBy(arr1, key);
TA贡献1799条经验 获得超9个赞
您需要找到一种方法来动态地告诉您的算法您需要排序的字段是什么。一个示例是在每个元素中包含一个属性,其中包含要排序的字段的名称。样本:
var arr1 = [{x: 0, y: 0, sort: 'x'}, {x: 10, y: 10, sort: 'x'}]
var arr1 = [{z: 0, y: 0, sort: 'z'}, {z: 10, y: 10, sort: 'z'}]
然后,您的排序功能将是相同的:
var sortFunction = function(a, b){return a[a['sort']] - b[b['sort']]}
arr1.sort(sortFunction);
arr2.sort(sortFunction);
添加回答
举报