3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以將要排序的鍵存儲(chǔ)在變量中,然后改用該變量。例子:
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貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果你是 lodash 的粉絲。
import _ from "lodash"
let key = 'z' // dynamic key
_.sortBy(arr1, key);

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
您需要找到一種方法來(lái)動(dòng)態(tài)地告訴您的算法您需要排序的字段是什么。一個(gè)示例是在每個(gè)元素中包含一個(gè)屬性,其中包含要排序的字段的名稱(chēng)。樣本:
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);
添加回答
舉報(bào)