摘要:每天練習(xí)一點(diǎn)點(diǎn),每天收獲一點(diǎn)點(diǎn)算法題收集網(wǎng)絡(luò),僅供學(xué)習(xí)參考字符串重復(fù)次數(shù)字符串重復(fù)次數(shù)統(tǒng)計(jì)字符重復(fù)出現(xiàn)的個(gè)數(shù)過濾對(duì)象數(shù)組中指定的對(duì)象過濾對(duì)象數(shù)組中指定的對(duì)象過濾方法數(shù)組遞歸實(shí)現(xiàn)過濾指定項(xiàng)數(shù)組遞歸實(shí)現(xiàn)過濾指定項(xiàng)測(cè)試數(shù)據(jù)過濾方法數(shù)組交集補(bǔ)集數(shù)組
每天練習(xí)一點(diǎn)點(diǎn),每天收獲一點(diǎn)點(diǎn)!!(算法題收集網(wǎng)絡(luò),僅供學(xué)習(xí)參考)字符串重復(fù)次數(shù)
字符串重復(fù)次數(shù)
var str = "abcdeacdbe"; //統(tǒng)計(jì)字符重復(fù)出現(xiàn)的個(gè)數(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}過濾對(duì)象數(shù)組中指定的對(duì)象
過濾對(duì)象數(shù)組中指定的對(duì)象
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ù)組遞歸實(shí)現(xiàn)過濾指定項(xiàng)
數(shù)組遞歸實(shí)現(xiàn)過濾指定項(xiàng)
//測(cè)試數(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ù)組交集補(bǔ)集
數(shù)組交集補(bǔ)集
//測(cè)試數(shù)據(jù)(過濾isextend為0的項(xiàng)) 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]獲取當(dāng)前日期前n天的日期
獲取當(dāng)前日期前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ù)組最大差值
計(jì)算數(shù)組中的最大差值
var arr = [1,3,5,7,9,0,11,14,8,6]; //在一個(gè)整數(shù)數(shù)組中,一個(gè)數(shù)字減去它左邊的數(shù)字得到一個(gè)差值,求最大差值的數(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ù)組重復(fù)對(duì)象
對(duì)數(shù)組中重復(fù)對(duì)象進(jìn)行操作
//數(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)橐粋€(gè)新的字段加入當(dāng)前對(duì)象,值為累加次數(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; },[]) }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/109926.html
摘要:例如現(xiàn)在的入門學(xué)習(xí)手記系列。收到粉絲留言和打賞的喜悅。安裝上一篇入門學(xué)習(xí)手記一,主要是介紹了的核心概念,是整個(gè)學(xué)習(xí)過程的基礎(chǔ)知識(shí)。新生成的類似如下入門學(xué)習(xí)手記因?yàn)樯傻膬?nèi)容過多,我直接省略掉了。 showImg(https://segmentfault.com/img/bVbk5Nd?w=1150&h=599); 本人微信公眾號(hào):前端修煉之路,歡迎關(guān)注。 最近開始想要維護(hù)一個(gè)個(gè)人的公眾...
摘要:每一個(gè)方格就是數(shù)組的一個(gè)個(gè)體。收工完成效果因?yàn)槲覍?shí)在是不想找那么多圖片,大概只拷貝了十份,然后乘以,所以會(huì)出現(xiàn)一個(gè)頭像重復(fù)三次的情況源碼。 我看到了什么 在看淘寶前端團(tuán)隊(duì)的博客的時(shí)候,無意中點(diǎn)進(jìn)了關(guān)于我們這個(gè)頁(yè)面,其中有個(gè)動(dòng)畫我覺得很有趣,也很通用,感覺在哪里都可以使用一樣,效果如下圖所示:showImg(https://segmentfault.com/img/bVWwzI?w=32...
摘要:每一個(gè)方格就是數(shù)組的一個(gè)個(gè)體。收工完成效果因?yàn)槲覍?shí)在是不想找那么多圖片,大概只拷貝了十份,然后乘以,所以會(huì)出現(xiàn)一個(gè)頭像重復(fù)三次的情況源碼。 我看到了什么 在看淘寶前端團(tuán)隊(duì)的博客的時(shí)候,無意中點(diǎn)進(jìn)了關(guān)于我們這個(gè)頁(yè)面,其中有個(gè)動(dòng)畫我覺得很有趣,也很通用,感覺在哪里都可以使用一樣,效果如下圖所示:showImg(https://segmentfault.com/img/bVWwzI?w=32...
摘要:舉個(gè)例子可以看到你就算賦予了和前端頁(yè)面渲染也是不正常的無論賦成什么結(jié)果都是但是我還需要對(duì)他進(jìn)行一些操作需要綁定他的事件所以我得解決辦法就是在標(biāo)簽外套了一層綁定了屬性,同時(shí)將事件綁定在這層上。 問題概要: 當(dāng)我運(yùn)用antd 中 radio組件的時(shí)候發(fā)現(xiàn)radio組件是有bug的 就是你不能給他賦予id 和 value,同時(shí)也綁定不上onclick等事件。舉個(gè)例子: showImg(htt...
閱讀 2066·2019-08-30 15:53
閱讀 3064·2019-08-30 15:44
閱讀 2913·2019-08-30 14:11
閱讀 2910·2019-08-30 14:01
閱讀 2694·2019-08-29 15:16
閱讀 3719·2019-08-29 13:10
閱讀 1239·2019-08-29 10:56
閱讀 2526·2019-08-26 13:58