摘要:用于找出第一個滿足提供的回調函數的數組成員。由被刪除的數組元素組成的一個數組。返回一個字符串,表示指定的數組及其元素
工具類方法
Array.from() :從一個類似數組或者可迭代對象中創建一個新的數組實例。
用一種更通俗易懂的方式來說,就是Array.from方法用于將兩類對象轉為真正數組:類數組對象(array-like object)和可遍歷(iterable)的對象。
實際應用中,常見的類數組對象是 DOM 操作返回的 NodeList 集合,以及函數內部的arguments對象。Array.from都可以將它們轉為真正的數組。
語法:Array.from(arrayLike[, mapFn[, thisArg]])
參數:
arrayLike 想要轉換成數組的偽數組對象或可迭代對象。
mapFn (可選參數) 如果指定了該參數,新數組中的每個元素會執行該回調函數。
thisArg (可選參數) 可選參數,執行回調函數 mapFn 時 this 對象。
返回值: 一個新的數組實例
// arguments對象 function foo() { var args = Array.from(arguments); // ... } Array.from("hello") // ["h", "e", "l", "l", "o"] // Using an arrow function as the map function to // manipulate the elements Array.from([1, 2, 3], x => x + x); // [2, 4, 6]
Array.isArray() 用于確定傳遞的值是否是一個 Array
語法:Array.isArray(obj)
參數:obj 需要檢測的值;
返回值:如果對象是 Array,則為true; 否則為false
Array.isArray([1, 2, 3]); // true Array.isArray({foo: 123}); // false Array.isArray("foobar"); // false Array.isArray(undefined); // false
Array.of方法用于將一組值,轉換為數組
語法:Array.of(element0[, element1[, ...[, elementN]]])
參數:
elementN
任意個參數,將按順序成為返回數組中的元素。
返回值:新的 Array 實例。
Array.of 和構造函數Array的區別
Array.of(3, 11, 8) // [3,11,8] Array.of(3) // [3] Array.of(3).length // 1 Array() // [] Array(3) // [, , ,] Array(3, 11, 8) // [3, 11, 8]
Array方法沒有參數、一個參數、三個參數時,返回結果都不一樣。只有當參數個數不少于 2 個時,Array()才會返回由參數組成的新數組。參數個數只有一個時,實際上是指定數組的長度。
Array.of基本上可以用來替代Array()或new Array(),并且不存在由于參數不同而導致的重載。它的行為非常統一。
Array.prototype.forEach:對數組的每個元素執行一次提供的函數
語法:
array.forEach(callback(currentValue, index, array){ //do something }, this)
參數:
callback: 為數組中每個元素執行的函數,該函數接收下面3個參數;
currentValue: 當前數組元素;
index(可選): 當前數組索引;
array(可選): 被遍歷的數組本身;
this(可選): 當執行callback回調函數時用作this的值(參考對象)
返回值:undefined
示例:
// 打印每個數組元素 function logArrayElements(element, index, array) { console.log("a[" + index + "] = " + element); }
Array.prototype.map(): 創建一個新數組,其結果是該數組中的每個元素都調用一個提供的函數后返回的結果
語法:
var new_array = arr.map(function callback(currentValue[, index[, array]]) { // Return element for new_array }[, thisArg])
參數:
callback:生成新數組元素的函數,有下面3個參數:
currentValue: 當前數組元素;
index(可選): 當前數組索引;
array(可選): 被遍歷的數組本身;
thisArg(可選): 當執行callback回調函數時用作this的值(參考對象)
返回值:一個新數組,每個元素都是回調函數的結果。
示例:
// 求數組中每個元素的平方根 let arr = [1, 4, 9]; let new_arr = arr.map(currentValue => { return Math.sqrt(currentValue) }) console.log(new_arr)
Array.prototype.reduce():reduce方法把一個函數作用在數組的所有元素。這個函數必須接收至少兩個參數,reduce()把函數的返回結果繼續和數組的下一個元素做累積計算
語法:
arr.reduce(function callback(accumulator, currentValue[, currentIndex, array]) { // coding... }[, initialValue)
參數:
callback: 執行數組中每個值的函數,包含四個參數:
accumulator: 函數回調的返回值;它是上一次調用回調時返回的累積值,或initialValue(見于下方)。
currentValue: 數組正在處理的元素。
currentIndex: 數組中正在處理的當前元素的索引。如果提供了initialValue,則索引號未0,否則索引為1。
array: 調用reduce()的數組。
initialValue: 作為第一次調用 callback函數時的第一個參數的值。 如果沒有提供初始值,則將使用數組中的第一個元素。 在沒有初始值的空數組上調用 reduce 將報錯。
返回值:函數累計處理的結果。
示例:
// 求數組中每個元素的和 var arr = [1, 2, 3, 4]; var sum = arr.reduce(function (x, y) { return x + y; } // 10
Array.prototype.reduceRight():reduceRight方法把一個函數作用在數組的所有元素。這個函數必須接收至少兩個參數,reduceRight()把函數的返回結果繼續和數組的下一個元素做累積計算。和reduce不同的是,reduceRight的遍歷順序是從右到左。
Array.prototype.every(): every方法測試數組的所有元素是否都通過了指定元素的測試。
語法:
arr.erery(callback[, thisArg])
參數:
callback:用來測試每個元素的函數。
thisArg:執行callback時內部指定的this值。
示例:
var arr = [1, 2, 3, 4, 11]; var passed = arr.every(function (x) { return x < 10; } // passed is false
Array.prototype.some():some方法測試數組的所有元素中是否有通過測試的。
語法:
arr.some(callback[, thisArg])
參數:
callback:用來測試每個元素的函數。
thisArg:執行callback時內部指定的this值。
示例:
var arr = [1, 2, 3, 4, 10]; var passed = arr.some(function (x) { return x < 10; } // passed is true
Array.prototype.filter(): filter()方法創建一個數組,其包含通過所提供函數實現的測試的所有元素。
語法:
var new_array = arr.filter(callback(element[, index[, array]])[, thisArg])
參數:
callback
用來測試數組的每個元素的函數。調用時使用參數(element, index, array)。
返回true表示保留該元素(通過測試),false則不保留,它接受三個參數:
element 當前在數組中處理的元素
index(可選) 正在處理元素在數組中的索引
array(可選) 調用了filter的數組
thisArg(可選) 執行callback時的用于 this 的值
示例:
var filtered = [12, 5, 8, 130, 44].filter(currentValue => { return currentValue > 10; }); // filtered is [12, 130, 44]
Array.prototype.keys(): 對數組鍵名(也就是索引值)的遍歷,返回一個遍歷器對象。
Array.prototype.value(): 對數組鍵值(也就是數組元素)的遍歷,返回一個遍歷器對象。
Array.prototype.entries: 對數組鍵值對(索引值,對應數組元素)的遍歷,返回一個遍歷器對象。
直接上示例代碼:
for (let index of ["a", "b"].keys()) { console.log(index); } // 0 // 1 for (let elem of ["a", "b"].values()) { console.log(elem); } // "a" // "b" for (let [index, elem] of ["a", "b"].entries()) { console.log(index, elem); } // 0 "a" // 1 "b"查找方法
Array.prototype.find(): 用于找出第一個滿足提供的回調函數的數組成員。所有數組成員依次執行該回調函數,直到找出第一個返回值為true的成員,然后返回該成員。否則返回undefined。
Array.prototype.findIndex():用于找出第一個滿足提供的回調函數的數組成員。所有數組成員依次執行該回調函數,直到找出第一個返回值為true的成員,然后返回該成員的位置(也就是索引)。否則返回-1。
語法:
arr.find(callback[, thisArg]); arr.findIndex(callback[, thisArg]);
參數:
callback
針對數組中的每個元素, 都會執行該回調函數, 執行時會自動傳入下面三個參數:
element 當前元素。
index 當前元素的索引。
array 調用findIndex的數組。
thisArg 可選。執行callback時作為this對象的值.
示例:
[1, 5, 10, 15].find(function(value, index, arr) { return value % 2 == 0; }) // 10 [1, 5, 10, 15].find(function(value, index, arr) { return value % 2 == 0; }) // 2
Array.prototype.indexOf:indexOf方法返回在數組中可以找到一個給定元素的第一個索引,如果不存在,則返回-1。
Array.prototype.lastIndexOf:lastIndexOf方法返回在數組中可以找到一個給定元素的最后一個索引(從數組的后面向前查找),如果不存在,則返回-1。
語法:
arr.indexOf(searchElement[, fromIndex = 0]) arr.lastIndexOf(searchElement[, fromIndex = 0])
參數:
searchElement 要查找的元素
fromIndex 開始查找的位置(對indexOf而言)或者開始逆向查找的位置(對lastIndexOf而言)
示例:
var indexof = [1, 5, 10, 5].indexOf(5) // 1 var lastindexof = [1, 5, 10, 5].indexOf(5) // 3
Array.prototype.includes(): includes() 方法用來判斷一個數組是否包含一個指定的值,根據情況,如果包含則返回 true,否則返回false。
語法:
arr.includes(searchElement, fromIndex)
參數:
searchElement 需要查找的元素值。
fromIndex 可選 從該索引處開始查找 searchElement。如果為負值,則按升序從 array.length - fromIndex 的索引開始搜索。默認為 0。
Array.prototype.pop: 從數組中刪除最后一個元素,并返回該元素的值。此方法改變數組的長度。
Array.prototype.push: 將一個或多個元素添加到數組的末尾,并返回該數組的新長度。
示例:
// pop let myFish = ["angel", "clown", "mandarin", "surgeon"]; let popped = myFish.pop(); console.log(myFish); // ["angel", "clown", "mandarin"] console.log(popped); // surgeon // push var sports = ["soccer", "baseball"]; var total = sports.push("football", "swimming"); console.log(sports); // ["soccer", "baseball", "football", "swimming"] console.log(total); // 4
Array.prototype.shift(): 從數組中刪除第一個元素,并返回該元素的值。此方法更改數組的長度。
Array.prototype.unshift(): 將一個或多個元素添加到數組的開頭,并返回該數組的新長度。
示例:
// shift let myFish = ["angel", "clown", "mandarin", "surgeon"]; let shift_length = myFish.shift(); console.log(myFish); // ["clown", "mandarin", "surgeon"] console.log(shift_length); // angel // unshift let sports = ["soccer", "baseball"]; let unshift_length = sports.unshift("football", "swimming"); console.log(sports); // ["football", "swimming", "soccer", "baseball"]
Array.prototype.splice: 通過刪除現有元素和/或添加新元素來更改一個數組的內容
語法:array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
參數:
start?:指定修改的開始位置(從0開始計數)
deleteCount:可選 指定要刪除的數組元素的個數,如果省略該參數,則從start開始的所有數組元素都被刪除(包括第start位)
item1, item2, ... : 可選,要添加進數組的元素,如果省略該參數,則只刪除數組元素
返回值:
如果沒有刪除元素,則返回空數組。由被刪除的數組元素組成的一個數組。如果只刪除了一個元素,則返回只包含一個元素的數組。
示例:
var myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"]; var removed = myFish.splice(3, 1, "big", "small"); console.log(myFish); console.log(removed) // > Array ["angel", "clown", "drum", "big", "small", "sturgeon"] // > Array ["mandarin"]拼接/截取方法
Array.prototype.concat(): 拼接兩個或者多個數組,此方法不會修改原數組,而是返回一個新的數組。
示例:
var arr1 = [1, 2, 3]; var arr2 = [4, 5, 6]; var new_arr = arr1.concat(arr2); // new_arr [1, 2, 3, 4, 5, 6]
Array.prototype.slice(): 返回一個新的數組對象,這一對象是一個由 begin和end(不包括end)決定的原數組的淺拷貝。原始數組不會被改變。
語法:arr.slice(begin, end);
參數:
begin: 可選 從該索引處開始提取原數組中的元素,如果省略該參數,則從0開始。
end: 可選 從該索引處結束提取原數組中的元素,如果省略該參數,則會一直提取到原數組末尾。
示例:
var arr = [1, 2, 3, 4, 5, 6]; var sub_arr = arr.splice(1, 4); // sub_arr [2, 3, 4]排序方法
Array.prototype.reverse(): 將數組中元素的位置顛倒,第一個數組元素成為最后一個數組元素,最后一個數組元素成為第一個。
示例:
var arr = [1, 2, 3, 4, 5, 6]; arr.reverse(); // arr -> [6, 5, 4, 3, 2, 1]
Array.prototype.sort():MDN給出的定義是用原地算法對數組的元素進行排序,并返回數組。排序不一定是穩定的。默認排序順序是根據字符串Unicode碼點。具體是咋排的我也不知道,我的理解就是按照字符串的Unicode碼點進行排序的。
語法:arr.sort([compareFunction])
參數:
compareFunction: 用來指定按某種順序進行排列的函數。如果省略,元素按照轉換為的字符串的各個字符的Unicode位點進行排序;如果不省略 compareFunction ,那么數組會按照調用該函數的返回值排序。即 a 和 b 是兩個將要被比較的元素:
如果 compareFunction(a, b) 小于 0 ,那么 a 會被排列到 b 之前;
如果 compareFunction(a, b) 等于 0 , a 和 b 的相對位置不變。備注: ECMAScript
標準并不保證這一行為,而且也不是所有瀏覽器都會遵守(例如 Mozilla 在 2003 年之前的版本);
如果 compareFunction(a, b) 大于 0 , b 會被排列到 a 之前。
compareFunction(a, b) 必須總是對相同的輸入返回相同的比較結果,否則排序的結果將是不確定的。
示例:
//升序 function sort_increase(a, b) { return a - b } // 降序 function sort_decrease(a, b) { return b - a } var arr = [3, 0 ,6 ,2 ,4 ,7] arr.sort(sort_increase) console.log(arr) arr.sort(sort_decrease) console.log(arr) // > Array [7, 6, 4, 3, 2, 0] // > Array [0, 2, 3, 4, 6, 7]其他
Array.prototype.copyWith():在當前數組內部,將指定位置的成員復制到其他位置(會覆蓋原有成員),然后返回當前數組。也就是說,這個方法會修改原有數組。
語法:arr.prototype.copyWith(target, start = 0, end = this.length)
參數:
target(必需):從該位置開始替換數據。如果為負值,表示倒數。
start(可選):從該位置開始讀取數據,默認為 0。如果為負值,表示倒數。
end(可選):到該位置前停止讀取數據,默認等于數組長度。如果為負值,表示倒數。
示例:
[1, 2, 3, 4, 5].copyWithin(0, 3) // [4, 5, 3, 4, 5]
Array.prototype.fill(): 使用給定值,填充一個數組。這個方法會修改原有數組。
語法:arr.fill(value[, start[, end]])
參數:
value 用來填充數組元素的值。
start 可選 起始索引,默認值為0。
end 可選 終止索引(不包括該位置),默認值為 this.length。
示例:
[1, 2, 3].fill(4); // [4, 4, 4] [1, 2, 3].fill(4, 1); // [1, 4, 4] [1, 2, 3].fill(4, 1, 2); // [1, 4, 3] [1, 2, 3].fill(4, 1, 1); // [1, 2, 3] [1, 2, 3].fill(4, 3, 3); // [1, 2, 3] [1, 2, 3].fill(4, -3, -2); // [4, 2, 3]
Array.protytye.join(): 一個數組(或一個類數組對象)的所有元素連接成一個字符串并返回這個字符串。
語法:arr.join(separator)
參數:
separator 指定一個字符串來分隔數組的每個元素,如果省略(),數組元素用逗號分隔。默認為 ","。
Array.prototype.toLocalString(): 返回一個字符串表示數組中的元素。數組中的元素將使用各自的 toLocaleString 方法轉成字符串,這些字符串將使用一個特定語言環境的字符串(例如一個逗號 ",")隔開。
Array.prototype.toString(): 返回一個字符串,表示指定的數組及其元素.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/98483.html
摘要:如何使用,在一個類型的數組里,查找最大或最小數呢以下介紹五個方法。利用代碼如下解釋方法就是通過一個函數,針對一個累加器和數組中的每一個元素,將一個數組最終減少到一個值。如果求最小值,將改成。 如何使用JS,在一個Number類型的數組里,查找最大(或最小)數呢? 以下介紹五個方法。(如果有新方法,后續會更新,也歡迎各位留言提供新方法) 1. 不使用任何庫函數 代碼如下: functio...
摘要:在,下,數據有添加成功,但返回值卻是轉換方法方法方法用于把數組中的所有元素放入一個字符串。元素是通過指定的分隔符進行分隔的。而調用數組的方法后,其值的順序變成了。返回值如果從中刪除了元素,則返回的是含有被刪除的元素的數組。 轉換方法 所有對象都具有toLocaleString()、toString()、valueOf()方法。其中調用數組的toString方法會返回以數組中的每個值的字...
摘要:整個數組的大操作轉換拼接排序倒置這個方法是將數組轉換為字符串,數組元素間用傳進去的參數沒有參數就用分隔這個方法用于拼接兩個數組并返回一個新的數組。看代碼吧打印整個數組這個方法是對數組的每一項運行給定函數,返回每一項返回結果組成的數組。 前言 在 JS 中我們數組用的是比較多的了,它自帶了很多方法可以用,省去了我們時間,特別是 ES6 當中對數組的擴展讓數組具有了更強大的功能,為了以后使...
摘要:屬性名描述為對象添加屬性方法返回數組對象引用返回數組元素數目方法名描述返回更改原數組連接多個數組連接后新數組將數組中所有元素合為一個字符串。 屬性名 描述 prototype 為對象添加屬性、方法 constructor 返回數組對象引用 length 返回數組元素數目 方法名 描述 返回 更改原數組 concat() 連接多個數組 連接后新數組 N ...
摘要:月下半旬攻略道題,目前已攻略題。目前簡單難度攻略已經到題,所以后面會調整自己,在刷算法與數據結構的同時,攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區別...
閱讀 1523·2023-04-26 02:03
閱讀 4707·2021-11-22 13:53
閱讀 4579·2021-09-09 11:40
閱讀 3782·2021-09-09 09:34
閱讀 2125·2019-08-30 13:18
閱讀 3501·2019-08-30 11:25
閱讀 3295·2019-08-26 14:06
閱讀 2545·2019-08-26 13:52