成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

每日一算(日更)

Miracle_lihb / 2538人閱讀

摘要:每天練習一點點,每天收獲一點點算法題收集網(wǎng)絡,僅供學習參考字符串重復次數(shù)字符串重復次數(shù)統(tǒng)計字符重復出現(xiàn)的個數(shù)過濾對象數(shù)組中指定的對象過濾對象數(shù)組中指定的對象過濾方法數(shù)組遞歸實現(xiàn)過濾指定項數(shù)組遞歸實現(xiàn)過濾指定項測試數(shù)據(jù)過濾方法數(shù)組交集補集數(shù)組

每天練習一點點,每天收獲一點點?。。ㄋ惴}收集網(wǎng)絡,僅供學習參考)
字符串重復次數(shù)
字符串重復次數(shù)
var str = "abcdeacdbe"; //統(tǒng)計字符重復出現(xiàn)的個數(shù);

function findRepeatNum(str) {
    return str.split("").reduce((pre,cur) => {
        if(cur in pre) {
            pre[cur] += 1;
        }else{
            pre[cur] = 1;
        }
        return pre;
    },{})
}
console.log(findRepeatNum(str)) //{a: 2, b: 2, c: 2, d: 2, e: 2}
過濾對象數(shù)組中指定的對象
過濾對象數(shù)組中指定的對象
var arr1 = [1,2];
var arr2 = [{id:1,name:"s"},{id:2,name:"ds"},{id:3,name:"gg"}]
//過濾方法
arr3 = arr2.filter((item) => !arr1.includes(item.id)); //[{id:3,name:"gg"}]
數(shù)組遞歸實現(xiàn)過濾指定項
數(shù)組遞歸實現(xiàn)過濾指定項
//測試數(shù)據(jù)
var data = [{
    isextend:1,                                              
    vaL:0,
    children:[{
        isextend:1,
        vaL:1,
        children:[{
            isextend:0,
            vaL:4
        },{
            isextend:1,
            vaL:5
        }]
    },{
       isextend:1,
       vaL:2,
       children:[]
    },{
       isextend:1,
       vaL:3,
       children:[]
    }]
}]

//過濾方法
function deleteNode(arr, key,targetValue) {
    return arr.filter(function(item, i) {
        if (item.children) {
            item.children = deleteNode(item.children, key,targetValue)
        }
        return item[key] !== targetValue;
    })
}

console.log(deleteNode(data, "isextend",0))
數(shù)組交集補集
數(shù)組交集補集
//測試數(shù)據(jù)(過濾isextend為0的項)
const a = [1, 2, 3, 4];
const b = [2, 3, 5, 6];

//過濾方法
function filterArr(arr1,arr2,type) {
    let diffArr = [];
    let sameArr = [];
    sameArr = arr1.filter(v => {
        return arr2.some(a => {
            return v == a
        })
    })
    let mergeArr = [...arr1,...arr2];
    diffArr = mergeArr.filter(v => {
        return !sameArr.includes(v)
    })
    if (type == "same") {
        return sameArr
    } else {
        return diffArr
    }
}

console.log(filterArr(a,b,"same")) // [2,3]
console.log(filterArr(a,b,"diff")) // [1,4,5,6]
獲取當前日期前n天的日期
獲取當前日期前n天的日期
function getIntervalDate(days) {
    let arrDateKeys = [...Array(days).keys()];
    let result = arrDateKeys.map(v => {
    let TimeStampOneDay = 24*60*60*1000;
    let d = new Date(Date.now() - TimeStampOneDay*v);
    let str = `${d.getFullYear()}年${d.getMonth() + 1}月${d.getDate()}日`;
        return str
    })
    return result;
}
console.log(getIntervalDate(3)) // ["2019年6月3日", "2019年6月2日", "2019年6月1日"]
數(shù)組最大差值
計算數(shù)組中的最大差值
var arr = [1,3,5,7,9,0,11,14,8,6]; //在一個整數(shù)數(shù)組中,一個數(shù)字減去它左邊的數(shù)字得到一個差值,求最大差值的數(shù)字

function findMaxDiffValue(arr) {
    var minValue = arr[0];
    var MaxDiffValue = 0;
    arr.forEach((v,index) => {
        if(minValue > v) minValue = v;
        var diff = v-minValue;
        if(diff > MaxDiffValue) MaxDiffValue = diff;
    })
    return MaxDiffValue
}
console.log(findMaxDiffValue(arr)) //14
數(shù)組重復對象
對數(shù)組中重復對象進行操作
//數(shù)據(jù)樣例
var arr = [
    { time: "20190807", cabin: "w",  dcp: 37 },
    { time: "20190806", cabin: "w",  dcp: 37 },
    { time: "20190805", cabin: "a",  dcp: 37 },
    { time: "20190806", cabin: "w",  dcp: 37 },
    { time: "20190807", cabin: "w",  dcp: 37 },
    { time: "20190804", cabin: "w",  dcp: 37 },
    { time: "20190803", cabin: "w",  dcp: 37 },
    { time: "20190805", cabin: "w",  dcp: 37 },
    { time: "20190802", cabin: "w",  dcp: 37 },
    { time: "20190806", cabin: "j",  dcp: 37 }, 
] 
//如果time,cabin相同,那么dcp字段的數(shù)值就相加,并且把cabin字段的value取出來變?yōu)橐粋€新的字段加入當前對象,值為累加次數(shù);
  
function filterArr(arr) {
    return arr.reduce((pre,cur,index) => {
        let {time,cabin,dcp} = cur;
        let isHas = pre.findIndex(v => v.time == time && v.cabin == cabin);
        if(isHas > -1){
            let cur = pre[isHas];
            cur["dcp"] += cur["dcp"];
            cur[cabin]++;
        }else{
            let clone = {...cur,[cabin]:1};
            pre.push(clone)
        }    
        return pre;
    },[])
}

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/109926.html

相關文章

  • webpack入門學習手記(二)

    摘要:例如現(xiàn)在的入門學習手記系列。收到粉絲留言和打賞的喜悅。安裝上一篇入門學習手記一,主要是介紹了的核心概念,是整個學習過程的基礎知識。新生成的類似如下入門學習手記因為生成的內(nèi)容過多,我直接省略掉了。 showImg(https://segmentfault.com/img/bVbk5Nd?w=1150&h=599); 本人微信公眾號:前端修煉之路,歡迎關注。 最近開始想要維護一個個人的公眾...

    Joyven 評論0 收藏0
  • 所見即所得,實現(xiàn)一個有趣的動畫效果

    摘要:每一個方格就是數(shù)組的一個個體。收工完成效果因為我實在是不想找那么多圖片,大概只拷貝了十份,然后乘以,所以會出現(xiàn)一個頭像重復三次的情況源碼。 我看到了什么 在看淘寶前端團隊的博客的時候,無意中點進了關于我們這個頁面,其中有個動畫我覺得很有趣,也很通用,感覺在哪里都可以使用一樣,效果如下圖所示:showImg(https://segmentfault.com/img/bVWwzI?w=32...

    xuxueli 評論0 收藏0
  • 所見即所得,實現(xiàn)一個有趣的動畫效果

    摘要:每一個方格就是數(shù)組的一個個體。收工完成效果因為我實在是不想找那么多圖片,大概只拷貝了十份,然后乘以,所以會出現(xiàn)一個頭像重復三次的情況源碼。 我看到了什么 在看淘寶前端團隊的博客的時候,無意中點進了關于我們這個頁面,其中有個動畫我覺得很有趣,也很通用,感覺在哪里都可以使用一樣,效果如下圖所示:showImg(https://segmentfault.com/img/bVWwzI?w=32...

    fyber 評論0 收藏0
  • 前端的事件冒泡(例如點擊一次onclick事件執(zhí)行兩次)解決辦法

    摘要:舉個例子可以看到你就算賦予了和前端頁面渲染也是不正常的無論賦成什么結果都是但是我還需要對他進行一些操作需要綁定他的事件所以我得解決辦法就是在標簽外套了一層綁定了屬性,同時將事件綁定在這層上。 問題概要: 當我運用antd 中 radio組件的時候發(fā)現(xiàn)radio組件是有bug的 就是你不能給他賦予id 和 value,同時也綁定不上onclick等事件。舉個例子: showImg(htt...

    cnsworder 評論0 收藏0

發(fā)表評論

0條評論

Miracle_lihb

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<