第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使排序功能動(dòng)態(tài)化

如何使排序功能動(dòng)態(tài)化

繁星淼淼 2022-01-07 18:47:14
我有一個(gè)數(shù)組如下:var arr1 = [{x: 0, y: 0}, {x: 10, y: 10}, {x: 20, y: 20}, {x: 30, y: 30}, {x: 40, y: 40}]arr1 表示用戶(hù)創(chuàng)建的信息表中的數(shù)據(jù),我使用 x 的升序?qū)?arr1 進(jìn)行了排序.sort。arr1.sort(function(a, b){return a.x - b.x});當(dāng)用戶(hù)將信息表 (arr1) 中值的名稱(chēng)從 x 更改為 z 或創(chuàng)建具有不同名稱(chēng)的新信息表時(shí),我必須修改我的代碼以再次對(duì)其進(jìn)行排序。var arr1 = [{z: 0, y: 0}, {z: 10, y: 10}, {z: 20, y: 20}, {z: 30, y: 30}, {z: 40, y: 40}] arr1.sort(function(a, b){return a.z - b.z});因此,我希望我的排序函數(shù)是動(dòng)態(tài)的,以便在更改數(shù)組中值的名稱(chēng)或創(chuàng)建具有新名稱(chēng)的信息表時(shí)不必更改代碼。我希望我能清楚地回答我的問(wèn)題,非常感謝任何幫助!
查看完整描述

3 回答

?
PIPIONE

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]});


查看完整回答
反對(duì) 回復(fù) 2022-01-07
?
萬(wàn)千封印

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊

如果你是 lodash 的粉絲。


import _ from "lodash"

let key = 'z' // dynamic key

_.sortBy(arr1, key);



查看完整回答
反對(duì) 回復(fù) 2022-01-07
?
揚(yáng)帆大魚(yú)

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);


查看完整回答
反對(duì) 回復(fù) 2022-01-07
  • 3 回答
  • 0 關(guān)注
  • 203 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)