參考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...