目錄:
1.扁平化n維陣列
2.去重
3.排序
4.最大值
5.求和
6.合併
7.判斷是否包含值
8.類陣列轉化
9.每一項設定值
10.每一項是否滿足
11.有一項滿足
12.過濾陣列
13.物件和陣列轉化
1.扁平化n維陣列
1.終極篇
[ 1, [ 2 , 3 ] ].flat(2) //[ 1, 2, 3 ]array.flat(n)是es10扁平陣列的api,n表示維度,n值為infinity時維度為無限大[ 1, [ 2, 3, [ 4,5 ] ].flat(3)//[1,2,3,4,5]
[ 1, [ 2, 3, [ 4,5 ] ] ].tostring()//'1,2,3,4,5'
[ 1[ 2, 3, [ 4, 5[...] ].flat(infinity)//[1,2,3,4...n]
2.開始篇
funtcion flatten( arr )實質是利用遞迴和陣列合併方法concat實現扁平return arr;
}flatten( [ 1, [ 2, 3] ] ) //[1,2,3]
flatten( [ 1, [ 2, 3, [ 4, 5 ] ] ] ) //[1,2,3,4,5]
2.去重
1.終極篇
array.from(new set([1,2,3,3,4,4])) //[1,2,3,4]set是es6新出來的一種定義不重複陣列的資料型別[...new set([1,2,3,3,4,4])] //[1,2,3,4]
array.from是講類陣列轉化為陣列
...是擴充套件運算子,講set裡面的值轉化為字串
2.開始篇
array.prototype.distinct = nums =>取新陣列存值,迴圈兩個陣列值相比較const result =
for (const n of nums)
}return result
}[1,2,3,3,4,4].distinct(); //[1,2,3,4]
3.排序
1.終極篇
[1,2,3,4].sort((a, b) => a - b); // [1, 2,3,4],預設是公升序sort是js內建的排序方法,引數為乙個函式[1,2,3,4].sort((a, b) => b - a); // [4,3,2,1] 降序
2.開始篇
氣泡排序
array.prototype.bublesort=function () }}選擇排序return arr;
}[1,2,3,4].bublesort() //[1,2,3,4]
array.prototype.selectsort=function ()4.最大值}} return arr;
} [1,2,3,4].selectsort() //[1,2,3,4]
1.終極篇
math.max(...[1,2,3,4]) //4math.max()是math物件內建的方法,引數是字串;[1,2,3,4].reduce( (prev, cur,curindex,arr)=> ,0) //4
reduce是es5的陣列api,引數有函式和預設初始值;
函式有四個引數,pre(上一次的返回值),cur(當前值),curindex(當前值索引),arr(當前陣列)
5.求和
1.終極篇
[1,2,3,4].arr.reduce(function (prev, cur) ,0) //102.開始篇
function sum(arr) else if (len == 1) else利用slice擷取改變陣列,在利用遞迴求和}sum([1,2,3,4]) //10
6.合併
1.終極篇
[1,2,3,4].concat([5,6]) //[1,2,3,4,5,6]2.開始篇[...[1,2,3,4],...[4,5]] //[1,2,3,4,5,6]
let arr=[1,2,3,4];7.判斷是否包含值[5,6].map(item=>)
//arr值為[1,2,3,4,5,6],注意不能直接return出來,return後只會返回[5,6]
1.終極篇
[1,2,3].includes(4) //falseincludes(),find(),findindex()是es6的api[1,2,3].indexof(4) //-1 如果存在換回索引
[1, 2, 3].find((item)=>item===3)) //3 如果陣列中無值返回undefined
[1, 2, 3].findindex((item)=>item===3)) //2 如果陣列中無值返回-1
2.開始篇
[1,2,3].some(item=>) //true 如果不包含返回false8.類陣列轉化
1.終極篇
array.prototype.slice.call(arguments) //arguments是類陣列(偽陣列)類陣列:表示有length屬性,但是不具備陣列的方法array.from(arguments)
[...arguments]
array.from是將類似陣列或可迭代物件建立為陣列
...是將類陣列擴充套件為字串,再定義為陣列
2.開始篇
array.prototype.slice = function(start,end)9.每一項設定值return result;
}
1.終極篇
[1,2,3].fill(false) //[false,false,false]fill是es6的方法
2.開始篇
[1,2,3].map(() => 0)10.每一項是否滿足
[1,2,3].every(item=>) //falseevery是es5的api,每一項滿足返回 true
11.有一項滿足
[1,2,3].some(item=>) //truesome是es5的api,有一項滿足則返回true
12.過濾陣列
[1,2,3].filter(item=>) //[3]filter是es5的api,返回滿足新增的項的陣列
13.物件和陣列轉化
object.keys() //['name','age']object.values() //['張三',14]
object.entries() //[[name,'張三'],[age,14]]
object.fromentries([name,'張三'],[age,14]) //es10的api,chrome不支援 , firebox輸出
百思不得解!
此處專門用來收集一些問題 1.問題背景 記憶體對映檔案的優點在於可以保密檔案。可以減少i o操作。但檔案過大的話並不推薦使用。例如,我的程式要引用乙個叫a.exe的程式,而a.exe是別人寫的我沒有原始碼,但我引用該exe時又不希望別人獲得這個exe,只希望別人在我的程式中使用a.exe的功能。此時...
python百雞百錢最優解 python練習題
1.小明過年得到1500元壓歲錢,在商場看中乙個書包,正好商場做活動打八五折,從鍵盤輸入書包的 輸出折扣後書包的 以及小明買了書包後剩下的錢。money 1500 bao float input 請輸入書包的 0.85 sheng money bao print 折扣後書包的 bao print 小...
樹狀陣列趣解
4操作原理 5小結 感謝各位能在白忙之中抽空來看鄙人的文章,cgg在這有禮了!先給張圖。下面的a是原陣列,而c則是a對應的樹狀陣列。所以你應該會恍然大悟 也許誇張了些 樹狀陣列是陣列的另一種表現形式,而這種表現形式會大大提高其各種操作的效率,在競賽中,也時常會考察,那麼下面,就讓我們一起去解開他神秘...