鍍金池/ 問答/Python  網(wǎng)絡(luò)安全/ 如何根據(jù)數(shù)組中,某個(gè)字段的大小,依次賦值?

如何根據(jù)數(shù)組中,某個(gè)字段的大小,依次賦值?

現(xiàn)在有一個(gè)數(shù)組

let arr = [
    {num: 3},
    {num: 4},
    {num: 1},
    {num: 2},
    {num: 0}
]

有沒有什么簡便的方法, 按照num的從大到小依次賦值 level 1-5?

最后得出數(shù)據(jù)為

let arr = [
    {num: 4, level: 1},
    {num: 3, level: 2},
    {num: 2, level: 3},
    {num: 1, level: 4},
    {num: 0, level: 5}
]

我想到一個(gè)比較蠢的,就是 先用sort 自定義函數(shù),將它進(jìn)行排序, 然后for循環(huán),從1開始 對(duì)level依次賦值。

有沒有什么一步到位的方式?

回答
編輯回答
落殤

歪個(gè)樓 一步到位 level=5-num 手動(dòng)滑稽(我也和你思路一樣,mark了等大神)

2018年1月16日 10:54
編輯回答
練命
let arr = [
  { num: 3 },
  { num: 4 },
  { num: 1 },
  { num: 2 },
  { num: 0 },
]

const seq = arr
  .map(({ num }) => ({ num, level: arr.length - num }))
  .sort((objA, objB) => objA.level - objB.level)
console.log(seq)

我來炫技(一個(gè)自嘲

2017年11月1日 03:29