小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

FCC高級算法題solution

 浪淘沙浪浪浪 2019-11-05

2.Record Collection

嚴格來講,這不是一道非常難的題,把題目要求看清楚,就能寫出代碼。
原題鏈接
我對題目的翻譯:
給你的是一個表示音樂專輯集合的一部分json對象,每一個專輯有幾個屬性和作為它的key的唯一的ID,不是所有的專輯都有完整的信息。

寫一個函數(shù),這個函數(shù)帶有專輯的ID,一個屬性和一個屬性值,去改變這個集合,

  • 如果屬性不是tracks,并且值不為空,更新這個值到集合對應(yīng)的屬性
    注意:你的函數(shù)需要返回集合對象
  • 下面是一些處理不完整數(shù)據(jù)的規(guī)則
  1. 如果屬性是tracks,但是集合沒有tracks屬性,在添加新值到專輯對應(yīng)屬性之前,創(chuàng)建一個空數(shù)組
  2. 如果屬性是tracks和值不為空,添加數(shù)據(jù)到專輯已經(jīng)存在的tracks數(shù)組末尾
  3. 如果值是空,從專輯里刪除被給的屬性

代碼方案如下:

function updateRecords(id, prop, value) {
    if (prop === 'tracks' && value !== '') {
        if (collectionCopy[id][prop]) {    //判斷集合是否有這個屬性
            collectionCopy[id][prop].push(value);    //有的話,直接push到末尾
        } else {    //沒有的話創(chuàng)建一個新的數(shù)組,將數(shù)組賦值給屬性prop。
            var arr = [];
            arr.push(value);
            collectionCopy[id][prop] = arr;
        }
    } else if (value === '') {    //值為空時候,刪除這個屬性
        delete collectionCopy[id][prop];
    } else {    //值不為空,屬性也不是track,將值賦給屬性
        collectionCopy[id][prop] = value;
    }
    return collectionCopy;
}

3.Symmetric Difference

這道題考察的是咱們的高中數(shù)學(xué)知識,但我把名詞忘了,但是不要緊,我們知道這道題的重點就是不斷去重,A和B去重,得到的結(jié)果和C去重,依次類推。

function sym(args) {
    //前半段得到參數(shù)數(shù)組,后半段使用 Set 集合得到去重的參數(shù)數(shù)組)
    var newArgs = Array.prototype.slice.call(arguments).map(function(item) {
        return Array.from(new Set(item));
    });;

    // 封裝方法——得到2個數(shù)組去重之后的數(shù)組
    function diff(arr1, arr2) {
        // 連接兩個數(shù)組,并給數(shù)組按照從小到大的順序排序
        var newArr = arr1.concat(arr2).sort(function(a, b){
            return a - b;
        });

        // 新數(shù)組去重
        for (var i = 0; i < newArr.length; i++) {
            if (newArr[i] === newArr[i + 1]) {
                delete newArr[i];
                delete newArr[i + 1];
            }
        }

        // 過濾空元素
        /*return newArr.filter(function(item) {
            return item !== '';
        });*/
        return newArr.filter(Boolean);//這里可以優(yōu)化一下
    }

    // 遍歷參數(shù)數(shù)組,得到最終的去重數(shù)組
    for (var i = 0; i < newArgs.length-1; i++) {
        newArgs[i+1]= diff(newArgs[i],newArgs[i+1]);
    }
    return newArgs[newArgs.length-1];
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多