JS陣列一些奇技淫巧 全

2021-10-09 08:56:02 字數 3885 閱讀 6940

js陣列有許多暴露了api,作為使用者,不僅要會用還要熟練,下面給大家帶來億點點api以及使用技巧供各位嫖客(我也是?)享用。

先來個資料備忘錄怎麼樣(盜竊位址)?

(本文大部分內容是以上位址,當然也有本人的補充)

上圖的補充:

every, some 返回的是布林值,表示每個都滿足,或者存在滿足

find

,findindex 返回的分別是第乙個滿足的陣列項與陣列項索引

[

nan]

.includes

(nan

)// true

[nan].

indexof

(nan

)// -1

方法從乙個類似陣列或可迭代物件建立乙個新的,淺拷貝的陣列例項。

array.

from([

1,2]

);// [1,2] 淺拷貝

array.

from()

// [1,2] 也可以接受類陣列

array.

from

('foo');

//["f", "o", "o"]

array.

from([

1,2,

3], x => x + x)

;//[2, 4, 6]

[1,

2,3]

.fill(0

,1,3

)//[1, 0, 0][1

,2,3

].fill(4

)// [4, 4, 4][1

,2,3

].fill(4

,1)//[1, 4, 4]

按照乙個可指定的深度遞迴遍歷陣列,並將所有元素與遍歷到的子陣列中的元素合併為乙個新陣列返回

[0,

1,2,

[3,4

]].flat()

// [0, 1, 2, 3, 4][[

0,[2

,3]]

,1,[

4,5]

].flat(2

)// [0, 2, 3, 1, 4, 5]

flatmap 建議大家也了解一下

//求和[1

,2,3

].reduce

((a,b)

=> a+b)

// 6

//最後引數是累加器(accumulator)的初始值[1

,2,3

].reduce

((a,b)

=> a+b,-1

);// 5

// 計算男生的分數[,

,].reduce

((acc, student, index, arr)

=>,0

);

還有大佬文章: csdn更高階用法

生成1-100這樣陣列

const arr =

newarray

(100).

fill(0

).map(

(item, index)

=> index +1)

//1-100

const arr = array.

from

(array

(100),

(v, k)

=> k +1)

//1-100

const ary =

[...

array

(100).

keys()

]// 0-99

交換變數&生成剩餘陣列(解構應用)

[a, b]

=[b, a]

[o.a, o.b]

=[o.b, o.a]

// 注意 res必須放在最後

const

[a,...rest]=[

...'asdf'

]// a:'a',rest: ["s", "d", "f"]

[a,b,

...rest]=[

1,2,

3,4]

// a:1 b:2,rest:[3,4]

淺拷貝:

const arr =[1

,2,3

]array.

from

(arr)

;// [1,2,3]

arr.

concat()

;// 同上

[...arr]

;// 同上

// 當然這不只是陣列的權利,物件也可以

陣列合併:

[

...[1]

,...[2

,3],

...[4,

5,6]

];//[1, 2, 3, 4, 5, 6][1

].concat([

2,3]

,[4,

5,6]

)// 結果同上

//你可能注意到解構好像還能有扁平一維陣列的作用

陣列去重:

array.

from

(new

set([1

,2,3

,2])

)// 1,2,3

[...

newset([

1,2,

3,2,

3])]

// 同上

取交集與差集

// 交集

[...

newset([

1,2,

3])]

.filter

(item =>[2

,3,4

].includes

(item)

)// [2,3]

//差集

[...

newset([

...[2,

3,5]

,...[1

,5,6

]])]

.filter

(item =>![

2,3,

5].includes

(item)||!

[1,5

,6].

includes

(item)

)// [2,3,1,6]

刪除陣列虛值

[0,

"blue",""

,nan,9

,true

, undefined,

"white"

,false

,null,0

].filter

(boolean)

;//["blue", 9, true, "white"]

隨機取陣列項

[1,

2,3,

4][math.

floor

(math.

random()

*4)]

// 4可由arr.length取到

Puppet的一些奇技淫巧

puppet這個工具真的很神奇,先不說商業版有哪些黑科技,單是開源版本就有很多可能讓你摸不著頭腦的地方,下面來列舉一下puppet是怎麼查詢puppet server的 其實很簡單,puppet agent只要知道puppet是什麼就可以了,你可以將 puppet 寫在 etc hosts裡,比如 ...

JS 奇技淫巧 隨時補充

1.在判斷typeof x undefined 時,可以採用typeof x t 代替,比較乙個字母比逐字比較更快.2.if x 最簡單的if語句,如果x存在則給a賦值,可用x a 0 代替,處理關係運算子比條件運算子更快.3.for迴圈,i 比i 更快.4.變數轉換的快速方法 var myvar ...

一些談話的技巧 絕非奇技淫巧

要是你以為單憑熟練的技能和辛勤的工作就能在職場上出人頭地,那你就有點無知了。當然,才幹加上超時加班固然很重要,但懂得在關鍵時刻說適當的話,那也是成功與否的決定性因素。卓越的說話技巧,譬如討好重要人,更能讓你名利雙收。牢記以下十個句型,並在適當時刻派上用場,加薪與公升職必然離你不遠。雖然公升職,加薪是...