一些陣列方法的總結

2021-10-09 10:13:22 字數 4290 閱讀 8295

參考mdn

// 從string生成陣列

array.

from

('foo');

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

// 從set生成陣列

const

set=

newset([

'foo'

,'bar'

,'baz'

,'foo'])

;array.

from

(set);

// [ "foo", "bar", "baz" ]

// 從map生成陣列

const map =

newmap([

[1,2

],[2

,4],

[4,8

]]);

array.

from

(map)

;// [[1, 2], [2, 4], [4, 8]]

newmap([

['1'

,'a'],

['2'

,'b']]

);array.

from

values()

);// ['a', 'b'];

array.

from

keys()

);// ['1', '2'];

// 從類陣列物件(arguments)生成陣列

functionf(

)f(1

,2,3

);// [ 1, 2, 3 ]

// 在 array.from 中使用箭頭函式

array.

from(,

(v, i)

=> i)

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

// 等價於

array.

from()

.map

((v, i)

=> i)

;// array.from(得到5個元素都為undefined的陣列,這個結果讓人有點懵

array.isarray() 用於確定傳遞的值是否是乙個 array。

// 下面的函式呼叫都返回 true

array.

isarray([

]);array.

isarray([

1]);

array.

isarray

(new

array()

);array.

isarray

(new

array

('a'

,'b'

,'c'

,'d'))

// 鮮為人知的事實:其實 array.prototype 也是乙個陣列。

array.

isarray

(array.prototype)

;

聯想到一道面試題: 如何判斷乙個物件是不是陣列物件

1. arr.__proto__ == array.prototype

2. arr instanceof

array

3. array.

isarray

(arr)

4. object.prototype.tostring.

call

(arr)

=="[object array]"

5. arr.constructor == array || arr.constructor.name ==

'array'

array.of() 方法建立乙個具有可變數量引數的新陣列例項,而不考慮引數的數量或型別。

array.of() 和 array 建構函式之間的區別在於處理整數引數:array.of(7) 建立乙個具有單個元素 7 的陣列,而 array(7) 建立乙個長度為7的空陣列(注意:這是指乙個有7個空位(empty)的陣列,而不是由7個undefined組成的陣列)。

array.of(

7);// [7]

array.of(

1,2,

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

array(7

);// [ , , , , , , ]

array(1

,2,3

);// [1, 2, 3]

concat() 方法用於合併兩個或多個陣列。

var alpha =

['a'

,'b'

,'c'];

var numeric =[1

,2,3

];alpha.

concat

(numeric)

;// ['a', 'b', 'c', 1, 2, 3]

join() 方法將乙個陣列(或乙個類陣列物件)的所有元素連線成乙個字串並返回這個字串。

var a =

['wind'

,'rain'

,'fire'];

var myvar1 = a.

join()

;// myvar1的值變為"wind,rain,fire" // 可以看出缺省分隔符為英文逗號

var myvar2 = a.

join

(', ');

// myvar2的值變為"wind, rain, fire"

var myvar3 = a.

join

(' + ');

// myvar3的值變為"wind + rain + fire"

var myvar4 = a.

join(''

);// myvar4的值變為"windrainfire"

reverse() 方法將陣列中元素的位置顛倒,並返回該陣列

const array1 =

['one'

,'two'

,'three'];

console.

log(

'array1:'

, array1)

;// array1: ["one", "two", "three"]

const reversed = array1.

reverse()

;console.

log(

'reversed:'

, reversed)

;// reversed: ["three", "two", "one"]

// 原陣列被改變

console.

log(

'array1:'

, array1)

;// array1: array ["three", "two", "one"]

slice() 方法返回乙個新的陣列物件,這一物件是乙個由 begin 和 end 決定的原陣列的淺拷貝(包括 begin,不包括end)。

var fruits =

['banana'

,'orange'

,'lemon',,

'mango'];

var citrus = fruits.

slice(1

,3);

// ['banana', 'orange', 'lemon']

sort() 方法用原地演算法對陣列的元素進行排序,並返回陣列。預設排序順序是在將元素轉換為字串,然後比較它們的utf-16**單元值序列時構建的。

var numbers =[4

,2,5

,1,3

]; numbers.

sort

((a, b)

=> a - b)

; console.

log(numbers)

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

tostring() 返回乙個字串,表示指定的陣列及其元素。

const array1 =[1

,2,'a'

,'1a'];

console.

log(array1.

tostring()

);// "1,2,a,1a"

都有乙個可選引數 fromindex,開始查詢的位置,預設值為0:

陣列方法的一些常用方法

js的陣列的方法有很多,先介紹幾個基本的方法 註解 1.2.引數中括號的內容 可選是可不寫的引數 有預設值 不含是返回值不包含該位置元素 3.結果 只在我函式中加了引數的情況下才有 否則為無。而且只是給出陣列變化結果,並不一定是方法的返回值 4.為了簡短起見,下文會使用js中的一些型別名稱的縮寫 a...

陣列方法總結

js的裡面的陣列方法有很多,平時開發中常用的如foreach map filter等等,接下來是對陣列方法的一些使用和總結,方便日後查閱。var a 1,2,3,4 console.log a.join 1,2,3,4 console.log a.join 1234 console.log a.jo...

陣列方法總結

陣列方法 foreach mapfilter some every indexof lastindexof reduce reduceright splice join sort reverse push popunshift shift concat 1.foreach foreach是array...