鄭列展現了自己的工具力(快速找雜物),但似乎還有別的?
鄭列:我看你是完全不懂啊,我還有別的能力啊,那就是:
快速調整亂堆雜物排序的方法
a.Array.prototype.sort()
b.Array.prototype.reverse()
快速增減雜物的方法
a.Array.prototype.splice()
公式:sort(compareFn((firstEl,secondEl))
公式解釋:
是否會回傳值:
單純使用sort(),沒有加入compareFn時:
會將陣列內容轉為字串,接著根據內建的unicode規則(用charCodeAt()判斷輸入值的unicode大小。),來判斷輸入大小後,接著進行排列。
加入compareFn進行比較時:
根據MDN所寫的比較規則:
If compareFunction(a, b) returns a value > than 0, sort b before a.
If compareFunction(a, b) returns a value < than 0, sort a before b.
If compareFunction(a, b) returns 0, a and b are considered equal.
大略翻譯就是:
1. a>0時,數值b往前排;
2. a <0時,維持a在前b在後;
3. a=0時,也維持a在前b在後
Q1: 想照著英文字母順序擺放名牌?沒問題
let x = ["BenQ","Apple","Guci","Parda","Hermes"];
console.log(x.sort())
//排序背後的道理是依據unicode的規則判斷
公式:find(callback((element,index))
公式解釋:
是否會回傳值:
Q1:原本由年代遠到近的合照擺放,會感覺自己正在變老,想交換順序行嗎?
這樣要很久?給鄭列我1分鐘就夠處理
let jsWithFriendsPhotos = ["2016-大家的合照","2017-大家的合照","2018-大家的合照"];
console.log(jsWithFriendsPhotos.reverse())
鄭列:哼哼,這個技能我特別得意,先來假想情境才能顯現它的厲害,假如今天JS一如往常堆滿了各種東西,如圖:
let jsCollections = ["JS姐妹的東西",
"JS姐妹的東西","JS姐妹的東西",
"JS的私人雜物","JS的私人雜物",
"JS的私人雜物","JS的私人雜物",
"JS的私人雜物","JS的私人雜物",
"JS姐妹的東西","工具人的朝貢",
"工具人的朝貢","工具人的朝貢",
"工具人的朝貢","工具人的朝貢",];
Q1:今天她說她覺得自己的雜物太多了,想丟掉一些
那還記得之前追求JS小姊姊系列 Day5 -- 工具人登場的部分,有提到的pop()
,shift()
嗎?只能先用起來了!
//首先我們知道JS的雜物範圍在索引值[4]-[9]之間
//1 用pop
jsCollections.pop();
jsCollections.pop();
jsCollections.pop();
//2 用shift
jsCollections.shift();
jsCollections.shift();
jsCollections.shift();
//3 用[]一個一個消
delet jsCollections[4];
delet jsCollections[5];
delet jsCollections[6];
為了愛,當然照樣整理下去,然後就會遇到各種問題:pop
只會從尾端刪內容,shif
則是從頭,根本處理不到中間的部分.....
這就是Array.prototype.splice()登場的時候了
公式:splice(start, deleteCount, item1, item2, itemN)
公式解釋:
是否會回傳值:
Q1:解決雜物太多,卻想一次丟的問題
let jsCollections = ["JS姐妹的東西",
"JS姐妹的東西","JS姐妹的東西",
"JS的私人雜物","JS的私人雜物",
"JS的私人雜物","JS的私人雜物",
"JS的私人雜物","JS的私人雜物",
"JS姐妹的東西","工具人的朝貢",
"工具人的朝貢","工具人的朝貢",
"工具人的朝貢","工具人的朝貢",];
jsCollections.splice(4,3);
//就能輕鬆把自己的雜物清除啦!~
Q2:仰慕者一次給我好多東西喔~也沒問題!
let jsCollections = ["JS姐妹的東西",
"JS姐妹的東西","JS姐妹的東西",
"JS的私人雜物","JS的私人雜物",
"JS的私人雜物","JS的私人雜物",
"JS的私人雜物","JS的私人雜物",
"JS姐妹的東西","工具人的朝貢",
"工具人的朝貢","工具人的朝貢",
"工具人的朝貢","工具人的朝貢",];
//依照上面的公式,選擇你想放置的位置
jsCollections.splice(4,"仰慕者的朝貢1","仰慕者的朝貢2","仰慕者的朝貢3","仰慕者的朝貢4");
console.log(jsCollections);
鄭列:不過說來慚愧,其實這些能力都不太受JS的青睞...
我:(看他突然很難過,該安慰他嗎?..),不然JS到底喜歡哪些能力啊。
鄭列:(恢復精神樣)哼,既然你真心誠意地發問了,我就大發慈悲的回應你吧。
-- to be continued --
那今天就到這邊摟!今天分享喜歡的歌是:
Queen - Keep Yourself Alive (Official Video)
https://www.youtube.com/watch?v=JofwEB9g1zg
每天的休息,是為了後面的追求,明天見。