String.prototype.repeat()ES6
構造并返回一個新字符串春贸,該字符串是原字符串重復若干次的結果久窟。
/*實用指數(shù) ??? 常用指數(shù) ??*/
>"切克鬧".repeat(3)
→"切克鬧切克鬧切克鬧"
數(shù)組
遍歷數(shù)組
用for循環(huán) 遍歷數(shù)組
var sxs = ['1','2','3','4','5','6','7','8','9','10','11','12'];
for( var i = 0 ; i
console.log('sssss'+sxs[i])
};
EC5 的遍歷數(shù)組方法 。
forEach? ? ? ? ? (function(每一個數(shù)組, 每一個數(shù)組的下標, 列表? 不常用 ){})
var sxs=['1','2','3','4','5','6','7','8','9','10','11','12'];
sxs.forEach(function(i,l){
console.log(i+(l+1));
})
for ?of ? ?EC6的方法
let ?sxs = ["??","??","??","??","??","??","??","??","??","??","??","??"];
for(let sx of sxs){console.log(`十二生肖之${sx}`);}
數(shù)組 api
數(shù)組與字符串
split將通過特定符號(如逗號,)隔開內容的字符串分拆成一個數(shù)組深胳。
String.prototype.split()將通過特定符號(如逗號,)隔開內容的字符串分拆成一個數(shù)組或详。
"格物致知".split('')→ ?["格","物","致","知"]
"We is for of split join".split(' ')→? ["we","is","for","of","split","join"]? //按空格來分拆成一個數(shù)組
join將數(shù)組元素連接成一個字符串并返回,數(shù)組本身不會因此改變
Array.prototype.join()將數(shù)組元素連接成一個字符串并返回复罐,數(shù)組本身不會因此改變。
["we","is","for","of","split","join"].join('') ?//按字符串連接在一起
"weisforofsplitjoin"
["we","is","for","of","split","join"].join(' ')? //按空格連接在一起
"we is for of split join"
數(shù)組API
數(shù)組常用API
判定
Array.isArray() ? ES5方法用于.判斷某個值是否數(shù)組
Array. isArray('') ? ? ? false
Array. isArray([]) ? ? ? true
Array.pretotype.some() ES5 方法是用于判定中是否有? 部分的元素? 通過條件的測試
>[95,85,100,90,82,100,99,98,95].some(score=>score===100)
→true
>['劉備','關羽','張飛','曹操','孫權'].some(function(name) {
return name.endsWith('瑜'); })// endsWith方法返回的測試該字符串是否以指定的后綴 結束雄家, 是的話返回true效诅, 否的話則返回false
→false
Array.pretotype.every()ES5 方法用于判定數(shù)組的 ? ?所有元素 ? 是否通過了條件函數(shù)的測試
['劉備','劉于','劉飛','劉操','劉奇','劉索'].every(function(name){return name.startsWith('劉');})
// startsWith 方法返回的測試該字符串是否以指定的前綴開始, 是的話返回true趟济, 否的話則返回false
true
遍歷
Array.prototype.forEach()ES5方法用于遍歷數(shù)組乱投,并將提供的函數(shù)作用在每個元素上
var ls=['蘋果','香蕉','芒果','西瓜'].forEach(function(ll,xx){console.log(`我喜歡吃的水果${xx+1}位是${ll}`);})
修改
Array.prototype.push()方法將一個 , 或者多個元素添加到 數(shù)組末尾顷编,并返回數(shù)組的最新長度戚炫。
ls = ['鼠','牛','龍','虎','狗']
ls.push('雞','羊')
["鼠", "牛", "龍", "虎", "狗", "雞", "羊"]
Array.prototype.pop()方法將一個 , 數(shù)組末尾的數(shù)組刪除勾效,并返回數(shù)組的最新長度嘹悼。 pop 會修改數(shù)組長度
>var ns = ['華為5','iphone 6','iphone 7']
>ns
-['華為5','iphone 6','iphone 7']
>var si = ns.pop()
>si
-iphone 7
>ns
['華為5','iphone 6']
Array.pretotype.shift()方法是將數(shù)組的 ?第一個元素刪除 ?叛甫, 并返回該元素的值层宫,數(shù)組的長度 length因此改變。
var stas= ['笑','哭','不','得']
stas.shift()
"笑"
stas
[''哭','不','得'}
Array.pretotype.unshift() 方法是 將一個或多個元素添加到數(shù)組開頭其监,并返回數(shù)組的最新長度萌腿。
var learn = ['CSS','HTML']
learn.unshift('JavaScript')
learn
['JavaScript','CSS','HTML']
Array.prototype.splice()方法通過刪除現(xiàn)有的元素和 , 或添加元素來更改一個數(shù)組抖苦。
copyWithin? ? ? ? ? ? ES6的 API? 用來復制更換某個元素
>var蜀=['劉備','關羽','張飛'];
→undefined>
蜀.splice(1,0,'諸葛亮','龐統(tǒng)')//諸葛亮龐統(tǒng)先后拜入劉備帳下 ?//
→ []
>蜀
→ ["劉備","諸葛亮","龐統(tǒng)","關羽","張飛"]
>蜀.splice(2,1)//龐統(tǒng)戰(zhàn)死于雒城
→ ["龐統(tǒng)"]>
蜀→ ["劉備","諸葛亮","關羽","張飛"]
>蜀.splice(2,2,'劉嬋','趙云','廖化')//關羽張飛先后被殺
→ ["關羽","張飛"]
>蜀→ ["劉備","諸葛亮","劉嬋","趙云","廖化"]
>蜀.copyWithin(0,2,3).splice(2,1)//劉備去世毁菱,劉嬋繼位 ? ? ? //copyWithin(更換的元素,復制的元素位置,復制的元素位置到哪的數(shù)字)? ES6的 API? 用來復制更換某個元素
→ ["劉嬋"]
>蜀→ ["劉嬋","諸葛亮","趙云","廖化"]
排序
Array.pretotype.sort()? 方法對數(shù)組進行排序并返回米死,默認排序順序是根據(jù)字符串Unicode碼點
>['c','p','w','g','h','a','b','r']
→["a", "b", "c", "g", "h", "p", "r", "w"]
> [1, 12, 200, 23, 2].sort() ? ? ? ? //數(shù)字排序不了,需要添加一個函數(shù)來進行排序
→[1, 12, 200, 23, 2]
>[1, 12, 200, 23, 2].sort(function(a,b){return a-b }) //添加函數(shù)表達式贮庞,使用A-B峦筒, 如果A-B結果小于0則不變,如果A-B結果大于0 則更換位置窗慎, ? ? 數(shù)字小的排序在前面物喷。數(shù)字大在后面
→[1, 2, 12, 23, 200]
>[1, 12, 200, 23, 2].sort(function(a,b){return b-a }) //添加函數(shù)表達式,使用B-A則得到和a-b相反遮斥,
→[[200, 23, 12, 2, 1]
搜索
Array.pretotype.indexOf()方法是用于搜索 查找的元素的下標
>"年年有今日峦失,歲歲有今朝。".indexOf('今日')
→3
>"問君能有幾多愁术吗?恰是一江春水向東流尉辑。".indexOf('樂')
→-1
>"年年歲歲花相似,歲歲年年人不同较屿。".indexOf('年年',2)
→10
映射
Array.prototype.map()ES5 方法是返回一個新數(shù)組隧魄,新數(shù)組中的每個元素都是映射函數(shù)作用在原數(shù)組元素上的結果
>[1,2,3,4,5,6].map(function(x){return x*x})
-[1, 4, 9, 16, 25, 36]
>['冷','熱','痛','痛'].map(function(stri){return stri.repeat(3);})
-["冷冷冷", "熱熱熱", "痛痛痛", "痛痛痛"]
歸納
Arrat.pretotype.reduce()
將數(shù)組里的值求和
var sum = [0, 1, 2, 3].reduce(function (a, b) {
return a + b;
}, 0);
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(
function(a, b) {
return a.concat(b);
})? // flattened is [0, 1, 2, 3, 4, 5]
MapReduce
MapReduce是Google提出的一個軟件架構,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運算隘蝎。 概念“Map(映射)”和“Reduce(歸納)”堤器,及他們的主要思想,都是從函數(shù)式編程語言借來的末贾,還有從矢量編程語言借來的特性闸溃。
MapReduce 用于購物車總價結算
var items = [//購物車里面的產(chǎn)品價格數(shù)量
{title:'蘋果',price:5,puantity:3 },//產(chǎn)品數(shù)量,價格
{title:'雪梨',price:8,puantity:6 },
{title:'香蕉',price:6,puantity:8 },
]
console.log(items.map(fruit => fruit.price* fruit.puantity).reduce((a,b)=> a+b ))//使用MapReduce完成購物車總價格計算
篩選
Aray.pretoty.filter() ES5 ?方法返回一個包含滿足條件函數(shù)的數(shù)組元素組成的新數(shù)組拱撵。
>[1,2,3,4,5,6,7,8,9,10].filter(function(n) {returnn%2===0; })
→ [2,4,6,8,10]
>['王維','劉禹錫','王勃','白居易','王之渙','賀知章','陳子昂'].filter(name=>name.startsWith('王'))
→ ["王維","王勃","王之渙"]
查找
Array.prototype.find()ES6方法返回數(shù)組中第一個滿足條件函數(shù)的元素的值辉川,沒有則返回undefined。
>[2,8,32,7,15,23,36,45].find(x => x%3===0)
→15
>['劉備','關羽','張飛','曹操','孫權'].find(name=>name.endsWith('瑜'))? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //endsWith方法返回的測試該字符串是否以指定的后綴 結束拴测, 是的話返回true乓旗, 否的話則返回false
→undefined