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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何實現(xiàn)一個簡單的有索引的數(shù)組?

如何實現(xiàn)一個簡單的有索引的數(shù)組?

如何實現(xiàn)一個索引數(shù)組?場景像下面這段代碼class User {  constructor(id, name, age) {    this.id = id    this.name = name    this.age = age  }}const users = [  new User(1, 'rxliuli', 18),  new User(2, '琉璃', 17),  new User(3, '靈夢', 16),  new User(4, '楚軒', 23),  new User(5, '月姬', 1000),  new User(6, '音無', 16),]console.log(users.find(({ id }) => id === 1))console.log(users.find(({ name }) => name === '音無'))console.log(users.filter(({ age }) => age >= 18))難道實現(xiàn)這些功能就只能遍歷么?能否實現(xiàn)某種數(shù)據(jù)結(jié)構(gòu)能夠指定某個字段有索引,然后能夠以常量時間根據(jù)該字段進行查找/過濾等操作呢?Pass: 結(jié)構(gòu)化的數(shù)據(jù)庫一般都有索引這種功能,為何程序中反而沒有呢?
查看完整描述

2 回答

?
拉風的咖菲貓

TA貢獻1995條經(jīng)驗 獲得超2個贊

你可以自己做一個反向索引(reverse index)啊,很簡單,就是個string => array的映射。比如:


var revIdxOnAge = new Array(1000);

revIdxOnAge[18] = [new User(1, 'rxliuli', 18)];

revIdxOnAge[17] = [new User(2, '琉璃', 17)];

...


var usersAgeGraterThan23 = revIdxOnAge.filter((e,i)=>i>23).reduce((a,b)=>[...a,...b], []);

但是你給的數(shù)據(jù)太過于離散了,所以沒有必要。少數(shù)據(jù)量或者數(shù)據(jù)離散度很高的情況下,還不如便利方便一些。


查看完整回答
反對 回復 2019-05-19
?
哆啦的時光機

TA貢獻1779條經(jīng)驗 獲得超6個贊

都現(xiàn)代化社會了Map了解一下老鐵,構(gòu)建時用名稱或者一個唯一值作為鍵就能索引用法參照

我是分割線
傳送門Map-MDN


查看完整回答
反對 回復 2019-05-19
  • 2 回答
  • 0 關(guān)注
  • 861 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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