隨便寫寫脐雪,用了這么久了說總結(jié)吧厌小。總是想顯得不那么舒適战秋,換個姿勢來吧璧亚。
String.prototype.includes() //ES6用于查詢給定字符串是否包含某一個字符
Array.prototype.includes() //ES7用于判斷給一個數(shù)組是否包含一個指定的值
includes(valueToFind[,fromIndex])
//valueToFind : 需要查找的元素
//fromIndex :可選參數(shù) 從fromIndex索引處開始查找valueToFind。如果為負值脂信,則按升序從array.length+fronIndex(絕對值)的索引開始搜癣蟋。默認為0透硝。
并不會按照順序來吧,想到哪看到哪疯搅,就寫到哪吧濒生!無序的集中。
Array.prototype.flat() //ES10 按照一個可指定的深度遞歸遍歷數(shù)組幔欧,并將所有元素于與遍歷到的子數(shù)組中的元素合并為一個新數(shù)組返回罪治。
const a = [1,2,3,4,[5,[6,7]]]
a.flat() //[1, 2, 3, 4, 5, [6,7]]
a.flat(2) // [1, 2, 3, 4, 5, 6, 7]
a.flat(Infinity) //不知層級時就用這個吧,畢竟簡單 [1, 2, 3, 4, 5, 6, 7]
flat([depth])
//depth : 要提取嵌套數(shù)組的結(jié)構(gòu)深度礁蔗,默認值是1规阀。
//該方法會移除數(shù)組中的空項。
說到這個就要說說 reduce()方法了瘦麸,她是對數(shù)組中的每個元素執(zhí)行一個由您提供的函數(shù)(升序執(zhí)行)谁撼,并將結(jié)果匯總為單個返回值。
let a = [1,3,4,5,2]
const reducer = (accumulator,currentValue) => accumulator + currentValue
a.reduce(reducer) // 15
reduce(callback(accumulator,currentValue[,index[,array]])[,initialValue])
//callback 執(zhí)行數(shù)組中每個值(如果沒有提供initialValue則第一個值除外)的函數(shù)滋饲,包含4個參數(shù)
//accumulator:累計器累計回調(diào) 的返回值厉碟。她是上一次調(diào)用回調(diào)時返回的累計值,或initialValue
//currentValue:數(shù)組正在處理的元素
//index:可選參數(shù)屠缭。數(shù)組中正在處理的當前元素的索引箍鼓。如果提供了initialValue,則起始索引為0呵曹,否則從索引1起始款咖。
//array:可選參數(shù)。調(diào)用reduce()的數(shù)組奄喂。
//initialValue:可選參數(shù)铐殃。作為第一次調(diào)用callback函數(shù)時的第一個參數(shù)的值。如果沒有提供初始值跨新,則將使用數(shù)組中的第一個元素富腊。在沒有初始值得空數(shù)組上調(diào)用reduce將報錯。
look this
//累加對象數(shù)組里的值
var initialValue = 0域帐;
var sum = [{a:1},{a:2},{a:3}].reduce((accumulator, currentValue) => accumulator + currentValue.a),initialValue);
// sum 6
//將二維數(shù)組轉(zhuǎn)化為一維數(shù)組
var flattened = [[0,1],[2,3],[4,5]].reduce((accumulator, curentValue) => accumulator.concat(currentValue),[])
// [0,1,2,3,4,5]
//計算數(shù)組中每個元素出現(xiàn)的次數(shù)
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
var count = names.reduce((a,c) => {
if(c in a){
a[c] ++ ;
}else{
a[c] = 1
}
return a;
},{});
// { 'Alice': 2, 'Bob': 1, 'Tiff': 1, 'Bruce': 1 }