篩選筆試題

題目:

var arr = [
    { name: '小米1', value: 1, type: 2, date: '2018-06-07T08:00:01.589Z' },
    { name: '錘子T1', value: 1, type: 2, date: '2018-06-07T08:10:01.589Z' },
    { name: '小米2', value: 1, type: 4, date: '2018-06-07T20:00:01.589Z' },
    { name: '小米2', value: 4, type: 4, date: '2018-06-07T20:10:21.189Z' },
    { name: '小米4', value: 1, type: 4, date: '2018-06-07T08:00:01.560Z' },
    { name: '小米4', value: 2, type: 4, date: '2018-06-07T08:10:31.584Z' },
    { name: '小米6', value: 1, type: 3, date: '2018-06-07T08:00:01.589Z' },
    { name: '小米5s', value: 1, type: 4, date: '2018-06-07T08:00:01.589Z' },
    { name: '錘子T2', value: 1, type: 4, date: '2018-06-07T08:00:01.589Z' },
    { name: '錘子T1', value: 4, type: 4, date: '2018-06-07T08:06:01.589Z' },
    { name: '魅藍(lán)note5', value: 1, type: 4, date: '2018-06-07T08:00:01.589Z' },
    { name: '魅藍(lán)note2', value: 5, type: 4, date: '2018-06-02T08:07:01.589Z' },
    { name: '魅藍(lán)note2', value: 6, type: 4, date: '2018-06-07T08:00:01.589Z' },
    { name: '魅藍(lán)note3', value: 1, type: 4, date: '2018-06-05T08:00:01.589Z' },
    { name: '魅藍(lán)note', value: 1, type: 4, date: '2018-06-07T08:00:01.589Z' },
    { name: 'oppor9', value: 7, type: 4, date: '2018-06-04T08:04:01.588Z' },
    { name: '華為p9', value: 1, type: 4, date: '2018-06-02T08:00:01.577Z' },
    { name: '華為p9', value: 2, type: 4, date: '2018-06-07T08:00:01.110Z' },
    { name: '華為p10', value: 1, type: 1, date: '2018-06-07T08:00:01.534Z' }
];
  • 請(qǐng)用您認(rèn)為最優(yōu)化的方式屹篓,將arr中的type為4的數(shù)據(jù)過(guò)濾出來(lái),
  • 然后按相同的 name + date(按天)合并value(value累加)混巧,
  • 然后按 value 降序(從大到小)排序细睡,
  • 最后每行按照 ${name},${本地日期},售出${sum(value)}部"的格式,如:"小米2,2017年06月08日,售出5部", 打印(console.log)出來(lái)忍宋。
  • 可以使用第三方j(luò)s庫(kù)痕貌,可以使用es6。
  • 請(qǐng)?jiān)诎胄r(shí)內(nèi)完成糠排。

要求最后輸出結(jié)果樣例如下:

oppor9,2017年06月04日,售出7部
魅藍(lán)note2,2017年06月07日,售出6部
魅藍(lán)note2,2017年06月02日,售出5部
小米2,2017年06月08日,售出5部

......

方案:

var newArr1 = arr.filter(item => item.type === 4);          // 1. 將arr中type為4的數(shù)據(jù)過(guò)濾出來(lái)
var newArr2 = mergeArray(newArr1);                          // 2. 按相同的name + date(按天)合并value(value累加)
var newArr3 = newArr2.sort((a, b) => b.value - a.value);    // 3. 按value降序(從大到卸娉怼)排序
printArrar(newArr3);                                        // 4. 每行按照name,本地日期入宦,售出X部的格式哺徊,打印出來(lái)

// 按相同的name + date(按天)合并value(value累加)
// 數(shù)組的下標(biāo)可以是字符串
function mergeArray(source) {
    var temp = [];
    source.forEach(item => {
        var key = item.name + item.date.slice(0, 10);
        if (typeof temp[key] === 'undefined') {
            temp[key] = item;
        } else {
            temp[key].value += item.value;
        }
    });
    var result = [];
    for (var i in temp) {
        result.push(temp[i]);
    }
    return result;
}

// 每行按照name,本地日期乾闰,售出X部的格式落追,打印出來(lái)
function printArrar(array) {
    array.forEach(item => {
        var date = item.date.slice(0, 10).split('-');
        console.log(`${item.name},${date[0]}年${date[1]}月${date[2]}日,售出${item.value}部`);
    });
}

知識(shí)點(diǎn):數(shù)組的下標(biāo)涯肩,可以是字符串

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末轿钠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子病苗,更是在濱河造成了極大的恐慌疗垛,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铅乡,死亡現(xiàn)場(chǎng)離奇詭異继谚,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門花履,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)芽世,“玉大人,你說(shuō)我怎么就攤上這事诡壁〖闷埃” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵妹卿,是天一觀的道長(zhǎng)旺矾。 經(jīng)常有香客問(wèn)我,道長(zhǎng)夺克,這世上最難降的妖魔是什么箕宙? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮铺纽,結(jié)果婚禮上柬帕,老公的妹妹穿的比我還像新娘。我一直安慰自己狡门,他們只是感情好陷寝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著其馏,像睡著了一般凤跑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叛复,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天仔引,我揣著相機(jī)與錄音,去河邊找鬼褐奥。 笑死肤寝,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的抖僵。 我是一名探鬼主播鲤看,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼耍群!你這毒婦竟也來(lái)了义桂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蹈垢,失蹤者是張志新(化名)和其女友劉穎慷吊,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體曹抬,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡溉瓶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片堰酿。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疾宏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出触创,到底是詐尸還是另有隱情坎藐,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布哼绑,位于F島的核電站岩馍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏抖韩。R本人自食惡果不足惜蛀恩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望茂浮。 院中可真熱鬧赦肋,春花似錦、人聲如沸励稳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)驹尼。三九已至,卻和暖如春庞呕,著一層夾襖步出監(jiān)牢的瞬間新翎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工住练, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留地啰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓讲逛,卻偏偏與公主長(zhǎng)得像亏吝,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子盏混,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 干開發(fā)也有不少年頭了蔚鸥,其實(shí)每個(gè)開發(fā)人員應(yīng)該都有總結(jié)和寫技術(shù)點(diǎn)的習(xí)慣,俗言說(shuō)得好“好記性不如一個(gè)爛筆頭”许赃。 我是一枚...
    catherine單眼皮小眼睛閱讀 13,857評(píng)論 24 7
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,456評(píng)論 0 13
  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說(shuō)閱讀 10,984評(píng)論 6 13
  • 一只白鶴飛在高高的空中止喷,人們看到了,禁不住贊嘆說(shuō):“快看盎炝摹弹谁!那只白鶴多么 高潔啊!身姿多么矯健预愤,真好看沟于!” ...
    六藝蒙館閱讀 307評(píng)論 2 0
  • 1. 一起吃早餐吧。想起來(lái)總是覺(jué)得特別溫馨鳖粟。 2.一起去看日出吧社裆。很遺憾高三畢業(yè)沒(méi)有和你一起看,有機(jī)會(huì)一起看一下吧...
    一席廢話吧閱讀 224評(píng)論 0 4