1 回答

TA貢獻(xiàn)1821條經(jīng)驗 獲得超6個贊
您可以匹配min和max并將數(shù)據(jù)放入哈希表中以映射已知鍵或添加新對象。
對于想要的密鑰,您可以使用新密鑰傳播一個對象。
const
getValue = v => +v.toString().match(/\d+/)[0],
one = '<0',
two = '20+',
data = [{ key: '<0', value: 0 }, { key: 2, value: 0 }, { key: 3, value: 0 }, { key: 7, value: 0 }, { key: 8, value: 0 }, { key: '20+', value: 0 }],
min = getValue(one),
max = getValue(two),
getKey = k => ({ [min]: one, [max]: two }[k] || k),
keys = data.reduce((r, o) => (r[getValue(o.key)] = o, r), {}),
result = Array.from(
{ length: max - min + 1 },
(_, i) => ({ key: null, value: 99, ...keys[min + i], key: getKey(min + i) })
);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
添加回答
舉報