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

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

按整數(shù)值排序后按特定順序?qū)?duì)象進(jìn)行排序

按整數(shù)值排序后按特定順序?qū)?duì)象進(jìn)行排序

慕森卡 2022-05-26 11:14:08
我目前正在嘗試將一組對(duì)象排序?yàn)樘囟樞?。我目前按?jí)別對(duì)其進(jìn)行排序-效果很好,但是我需要按如下所示對(duì)其進(jìn)行排序,其中“連接器”類型必須只能出現(xiàn)在“子句”類型之后和之前,如下所示:[  {    "type": "Clause",    "level": 1  },  {    "type": "Concatenator",    "level": 1  },  {    "type": "Clause",    "level": 2  },  {    "type": "Concatenator",    "level": 2  },  {    "type": "Clause",    "level": 2  },  {    "type": "Concatenator",    "level": 3  },  {    "type": "Clause",    "level": 3  },  {    "type": "Concatenator",    "level": 3  },  {    "type": "Clause",    "level": 3  },  {    "type": "Concatenator",    "level": 4  },  {    "type": "Clause",    "level": 4  },  {    "type": "Concatenator",    "level": 4  },  {    "type": "Clause",    "level": 4  }]下面是我目前擁有的代碼,它目前僅按級(jí)別排序,并嘗試按我想要的方式對(duì)其進(jìn)行排序:conditionsArr = [{    "type": "Concatenator",    "level": 3  },  {    "type": "Clause",    "level": 4  },  {    "type": "Clause",    "level": 1  },  {    "type": "Concatenator",    "level": 1  },  {    "type": "Clause",    "level": 3  },  {    "type": "Clause",    "level": 4  },  {    "type": "Clause",    "level": 3  },  {    "type": "Concatenator",    "level": 4  },  {    "type": "Clause",    "level": 2  },  {    "type": "Concatenator",    "level": 2  },  {    "type": "Concatenator",    "level": 3  },  {    "type": "Clause",    "level": 2  },  {    "type": "Concatenator",    "level": 4  }]function sortByLevel(conditionsArr) {  return conditionsArr.sort(function(a, b) {    return a.level - b.level;  }).sort(function(a, b) {    if (a.type === b.type)      return -1;    return 0;  });}我嘗試過另一種排序,并查看了其他答案以獲取靈感,但我無法將其按排序后半部分所需的順序排列。關(guān)于如何對(duì)它進(jìn)行排序有什么建議嗎?
查看完整描述

1 回答

?
守著一只汪

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

你可以

  • 將對(duì)象分組level,

  • level Clause為每個(gè)和Concatenator不同的數(shù)組收集

  • 通過迭代分組對(duì)象來重建一個(gè)新數(shù)組

  • 使用變量i來獲得交替types。

var array = [{ type: "Concatenator", level: 3 }, { type: "Clause", level: 4 }, { type: "Clause", level: 1 }, { type: "Concatenator", level: 1 }, { type: "Clause", level: 3 }, { type: "Clause", level: 4 }, { type: "Clause", level: 3 }, { type: "Concatenator", level: 4 }, { type: "Clause", level: 2 }, { type: "Concatenator", level: 2 }, { type: "Concatenator", level: 3 }, { type: "Clause", level: 2 }, { type: "Concatenator", level: 4 }],

    order = { Clause: 0, Concatenator: 1 },

    temp = array.reduce((r, o) => {

        r[o.level] = r[o.level] || [[], []];

        r[o.level][order[o.type]].push(o);

        return r;

    }, {}),

    i = 0,

    result = Object

        .keys(temp)

        .sort((a, b) => a - b)

        .flatMap(k => {

            var r = [];

            while (temp[k][i].length) {

                r.push(temp[k][i].shift());

                i = 1 - i;

            }

            return r;

        });


console.log(result);

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反對(duì) 回復(fù) 2022-05-26
  • 1 回答
  • 0 關(guān)注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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