摘要:元素是通過指定的分隔符進行分隔的。如果數組已經為空,則不改變數組,并返回值。可添加多個元素返回值把指定的值添加到數組后的新長度。該參數是數組片斷結束處的數組下標。返回值對數組的引用。語法返回值的字符串表示。當前元素所屬的數組對象。
一、創建數組 1.1 使用Array構造函數
var arr1 = new Array(); // 創建一個空數組 var arr2 = new Array(10); // 創建一個包含20項的數組 var arr3 = new Array("liu", "wang", "li"); // 創建一個包含3個字符串的數組1.2 使用數組字面量表示法
var arr1 = []; // 創建一個空數組 var arr2 = [10]; // 創建一個包含1項的數組 var arr3 = ["liu", "wang", "li"]; // 創建一個包含3個字符串的數組二、常用數組方法
方法名 | 描述 |
---|---|
join | 把數組的所有元素放入一個字符串,元素通過指定的分隔符進行分隔 |
pop | 刪除并返回數組的最后一個元素 |
push | 向數組的末尾添加一個或更多元素,并返回新的長度 |
shift | 刪除并返回數組的第一個元素 |
unshift | 向數組的開頭添加一個或更多元素,并返回新的長度 |
slice | 從某個已有的數組返回指定的元素 |
indexOf | 返回第一個與給定參數相等的數組元素的索引,沒有找到則返回-1 |
lastIndexOf | 返回在數組中搜索到的與給定參數相等的元素的索引里的最大的值,沒有找到則返回-1 |
sort | 對數組的元素進行排序 |
splice | 刪除元素,并向數組添加新元素 |
toString | 把數組轉換為字符串,并返回結果 |
toLocaleString | 把數組轉換為本地字符串,并返回結果 |
valueOf | 返回數組對象的原始值 |
forEach | 對數組中的每一項運行指定函數,這個方法沒有返回值 |
concat | 連接2個或更多數組,并返回結果 |
every | 對數組中的每一項運行指定函數,如果該函數對每一項都返回true,則返回true |
some | 對數組中的每一項運行指定函數,如果任一項返回true,則返回true |
filter | 對數組中的每一項運行指定函數,返回該函數會返回true的項組成的數組 |
reverse | 顛倒數組中元素的順序 |
map | 對數組中的每一項運行指定函數,返回每次函數調用的結果組成的數組 |
reduce | 接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值 |
reduceRight | 接收一個函數作為累加器,數組中的每個值(從右到左)開始縮減,最終計算為一個值 |
PS:原始值是指固定而簡單的值,存放在棧中的簡單數據段,它們的值直接存儲在變量訪問的位置。
JavaScript中有五種原始類型,也叫基本類型:
Number、String、Boolean、Undefined、Null
定義和用法
join()方法用于把數組中的所有元素放入一個字符串。
元素是通過指定的分隔符進行分隔的。
語法
arrayObject.join(separator)
參數 | 描述 |
---|---|
seperator | 可選。指定要使用的分隔符,如果省略該參數,則使用逗號作為分隔符 |
返回值
返回一個字符串。該字符串是通過把 arrayObject 的每個元素轉換為字符串,然后把這些字符串連接起來,在兩個元素之間插入 separator 字符串而生成的。
var arr = new Array(3); arr[0] = "Geroge"; arr[1] = "John"; arr[2] = "Thomas"; var str1 = arr.join(); var str2 = arr.join(""); var str3 = arr.join(" "); var str4 = arr.join("-"); console.log(str1); // "Geroge,John,Thomas" console.log(str2); // "GerogeJohnThomas" console.log(str3); // "Geroge John Thomas" console.log(str4); // "Geroge-John-Thomas"3.2 pop
定義和用法
pop()方法用于刪除并返回數組的最后一個元素。
語法
arrayObject.pop()
返回值
arrayObject 的最后一個元素。
說明
pop() 方法將刪除 arrayObject 的最后一個元素,把數組長度減 1,并且返回它刪除的元素的值。如果數組已經為空,則 pop() 不改變數組,并返回 undefined 值。
var arr = new Array(3); arr[0] = "Geroge"; arr[1] = "John"; arr[2] = "Thomas"; console.log(arr); // ["Geroge", "John", "Thomas"] console.log(arr.pop()); // "Thomas" console.log(arr); // ["Geroge", "Thomas"]3.3 push
定義和用法
push()方法可向數組的末尾添加一個或多個元素,并返回新的長度。
語法
arrayObject.push(newElement1, newElement2, ..., newElementX)
參數 | 描述 |
---|---|
newElement1 | 必需。要添加到數組末尾的第一個元素 |
newElement2 | 可選。要添加到數組末尾的第二個元素 |
newElementX | 可選。可添加多個元素 |
返回值
把指定的值添加到數組后的新長度。
說明
push() 方法可把它的參數順序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是創建一個新的數組。push() 方法和 pop() 方法使用數組提供的先進后出棧的功能。
var arr = new Array(3); arr[0] = "Geroge"; arr[1] = "John"; arr[2] = "Thomas"; console.log(arr); // ["Geroge", "John", "Thomas"] console.log(arr.push("James")); // 4 console.log(arr); // ["Geroge", "John", "Thomas", "James"] console.log(arr.push("Peter", "Sara")); // 6 console.log(arr); // ["Geroge", "John", "Thomas", "James", "Peter", "Sara"]3.4 shift
定義和用法
shift()方法用于把數組的第一個元素從其中刪除,并返回第一個元素的值。
語法
arrayObject.shift()
返回值
數組原來的第一個元素的值。
說明
如果數組是空的,那么 shift() 方法將不進行任何操作,返回 undefined 值。請注意,該方法不創建新數組,而是直接修改原有的 arrayObject。
var arr = new Array(3); arr[0] = "Geroge"; arr[1] = "John"; arr[2] = "Thomas"; console.log(arr); // ["Geroge", "John", "Thomas"] console.log(arr.shift()); // "Geroge" console.log(arr); // ["John", "Thomas"]3.5 unshift
定義和用法
unshift()方法可向數組的開頭添加一個或多個元素,并返回新的長度。
語法
arrayObject.unshift(newElement1, newElement2, ..., newElementX)
參數 | 描述 |
---|---|
newElement1 | 必需。要添加到數組開頭的第一個元素 |
newElement2 | 可選。要添加到數組開頭的第二個元素 |
newElementX | 可選。可添加多個元素 |
返回值
arrayObject 的新長度。
說明
unshift() 方法將把它的參數插入 arrayObject 的頭部,并將已經存在的元素順次地移到較高的下標處,以便留出空間。該方法的第一個參數將成為數組的新元素 0,如果還有第二個參數,它將成為新的元素 1,以此類推。
請注意,unshift() 方法不創建新的創建,而是直接修改原有的數組。
var arr = new Array(3); arr[0] = "Geroge"; arr[1] = "John"; arr[2] = "Thomas"; console.log(arr); // ["Geroge", "John", "Thomas"] console.log(arr.unshift("James")); // 4 console.log(arr); // ["James", "Geroge", "John", "Thomas"] console.log(arr.unshift("Peter", "Sara")); // 6 console.log(arr); // ["Peter", "Sara", "James", "Geroge", "John", "Thomas"]3.6 slice
定義和用法
slice()方法可從已有的數組中返回選定的元素。slice()方法不改變原數組。
語法
arrayObject.slice(start, end)
參數 | 描述 |
---|---|
start | 必需。規定從何處開始選取。 如果是負數,那么它規定從數組尾部開始算起的位置。 也就是說,-1指最后一個元素,-2指倒數第二個元素,以此類推。 |
end | 可選。規定從何處結束選取。 該參數是數組片斷結束處的數組下標。 如果沒有指定該參數,那么切分的數組包含從start到數組結束的所有元素。 如果這個參數是負數,那么它規定的是從數組尾部開始算起的元素。 |
返回值
返回一個新的數組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。
說明
請注意,該方法并不會修改數組,而是返回一個子數組。如果想刪除數組中的一段元素,應該使用方法 Array.splice()。
var arr = new Array(6); arr[0] = "George"; arr[1] = "John"; arr[2] = "Thomas"; arr[3] = "James"; arr[4] = "Adrew"; arr[5] = "Martin"; console.log(arr); // ["Geroge", "John", "Thomas", "James", "Adrew", "Martin"] console.log(arr.slice(0)); // ["Geroge", "John", "Thomas", "James", "Adrew", "Martin"] console.log(arr.slice(1)); // ["John", "Thomas", "James", "Adrew", "Martin"] console.log(arr.slice(1, 3)); // ["John", "Thomas"] console.log(arr.slice(1, -2)); // ["John", "Thomas", "James"] console.log(arr.slice(-1, -2)); // [] console.log(arr.slice(-2, -1)); // ["Adrew"] console.log(arr); // ["Geroge", "John", "Thomas", "James", "Adrew", "Martin"]3.7 indexOf
定義和用法
indexOf()方法可返回某個指定的值在數組中首次出現的位置。從左往右找,找不到返回-1。
語法
arrayObject.indexOf(searchValue, fromIndex)
參數 | 描述 |
---|---|
searchValue | 必需。規定需檢索的值。 |
fromIndex | 可選的整數參數,開始查找的位置。 如果該索引值大于或等于數組長度,意味著不會在數組里查找,返回-1。 如果參數中提供的索引值是一個負值,則將其作為數組末尾的一個抵消, 即-1表示從最后一個元素開始查找,-2表示從倒數第二個元素開始查找 ,以此類推。 注意:如果參數中提供的索引值是一個負值,并不改變其查找順序, 查找順序仍然是從前向后查詢數組。如果抵消后的索引值仍小于0, 則整個數組都將會被查詢。其默認值為0 |
var arr = new Array(6); arr[0] = "George"; arr[1] = "John"; arr[2] = "Thomas"; arr[3] = "James"; arr[4] = "Adrew"; arr[5] = "Martin"; console.log(arr.indexOf("Thomas")); // 2 console.log(arr.indexOf("Thomas", 2)); // 2 console.log(arr.indexOf("Thomas", 3)); // -1 console.log(arr.indexOf("Thomas", -4)); // 2 console.log(arr.indexOf("Thomas", -3)); // -1 console.log(arr.indexOf("Peter")); // -13.8 lastIndexOf
定義和用法
lastIndexOf()方法可返回某個指定的值在數組中首次出現的位置。從右往左找,找不到返回-1。
語法
arrayObject.indexOf(searchValue, fromIndex)
參數 | 描述 |
---|---|
searchValue | 必需。規定需檢索的值。 |
fromIndex | 可選的整數參數,從此位置開始逆向查找。 默認為數組的長度減 1,即整個數組都被查找。 如果該值大于或等于數組的長度,則整個數組會被查找。 如果為負值,將其視為從數組末尾向前的偏移。 即使該值為負,數組仍然會被從后向前查找。 如果該值為負時,其絕對值大于數組長度,則方法返回 -1,即數組不會被查找 |
var arr = new Array(6); arr[0] = "George"; arr[1] = "John"; arr[2] = "Thomas"; arr[3] = "James"; arr[4] = "Adrew"; arr[5] = "Martin"; console.log(arr.lastIndexOf("Thomas")); // 2 console.log(arr.lastIndexOf("Thomas", 2)); // 2 console.log(arr.lastIndexOf("Thomas", 3)); // 2 console.log(arr.lastIndexOf("Thomas", 1)); // -1 console.log(arr.lastIndexOf("Thomas", -4)); // 2 console.log(arr.lastIndexOf("Thomas", -3)); // 2 console.log(arr.lastIndexOf("Peter")); // -13.9 sort
定義和用法
sort()方法用于對數組的元素進行排序。
語法
arrayObject.sort(sortby)
參數 | 描述 |
---|---|
sortby | 可選。規定排序順序。必須是函數。 |
返回值
對數組的引用。請注意,數組在原數組上進行排序,不生成副本。
說明
如果調用該方法時沒有使用參數,將按字母順序對數組中的元素進行排序,說的更精確點,是按照字符編碼的順序進行排序。要實現這一點,首先應把數組的元素都轉換成字符串(如有必要),以方便比較。
如果想按照其他標準進行排序,就需要提供比較函數,該函數要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數字。比較函數應該具有兩個參數a和b,其返回值如下:
若a小于b,在排序后的數組中a應該出現在b之前,則返回一個小于0的值。
若a等于b,則返回0。
若a大于b,則返回一個大于0的值。
即順序 return a - b; 倒序 return b - a;
a在b前返回負數,a在b后返回正數
var arr = new Array(6); arr[0] = "10"; arr[1] = "5"; arr[2] = "40"; arr[3] = "25"; arr[4] = "1000"; arr[5] = "1"; console.log(arr); // ["10", "5", "40", "25", "1000", "1"] console.log(arr.sort()); // ["1", "10", "1000", "25", "40", "5"] console.log(arr); // ["1", "10", "1000", "25", "40", "5"]
var arr = new Array(6); arr[0] = "10"; arr[1] = "5"; arr[2] = "40"; arr[3] = "25"; arr[4] = "1000"; arr[5] = "1"; function orderNumber (a, b) { return a - b; } function descOrderNumber (a, b) { return b - a; } console.log(arr); // ["10", "5", "40", "25", "1000", "1"] console.log(arr.sort(orderNumber)); // ["1", "5", "10", "25", "40", "1000"] console.log(arr.sort(descOrderNumber)); // ["1000", "40", "25", "10", "5", "1"] console.log(arr); // ["1000", "40", "25", "10", "5", "1"]3.10 splice
定義和用法
splice()方法向/從數組中添加/刪除項目,然后返回被刪除的項目。該方法會改變原始數組。
語法
arrayObject.splice(index, howmany, item1, ......, itemX)
參數 | 描述 |
---|---|
index | 必需。整數,規定添加/刪除項目的位置,使用負數可從數組結尾處規定位置。 |
howmany | 必需。要刪除的項目數量。如果設置為0,則不會刪除項目。 |
item1,......,itemX | 可選。向數組添加的新項目。 |
返回值
類型 | 描述 |
---|---|
Array | 包含被刪除項目的新數組,如果有的話。 |
說明
splice()方法可刪除從index處開始的0個或多個元素,并且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。如果從arrayObject中刪除了元素,則返回的是含有被刪除的元素的數組。
var arr = new Array(6); arr[0] = "George"; arr[1] = "John"; arr[2] = "Thomas"; arr[3] = "James"; arr[4] = "Adrew"; arr[5] = "Martin"; console.log(arr); // ["Geroge", "John", "Thomas", "James", "Adrew", "Martin"] console.log(arr.splice(1, 1, "Peter", "Sara")); // ["John"] console.log(arr); // ["Geroge", "Peter", "Sara", "Thomas", "James", "Adrew", "Martin"] console.log(arr.splice(1, 0, "Ella")); // [] console.log(arr); // ["Geroge", "Ella", "Peter", "Sara", "Thomas", "James", "Adrew", "Martin"]3.11 toString
定義和用法
toString()方法可把數組轉換為字符串,并返回結果。
語法
arrayObject.toString()
返回值
arrayObject的字符串表示。返回值與沒有參數的join()方法返回的字符串相同。
說明
當數組用于字符串環境時,JavaScript會調用這一方法將數組自動轉換成字符串。但是在某些情況下,需要顯式地調用該方法。
var arr = new Array(4); arr[0] = "Geroge"; arr[1] = "John"; arr[2] = "Thomas"; arr[3] = 20; console.log(arr.toString()); // "Geroge,John,Thomas,20"3.12 toLocaleString
定義和用法
toLocaleString()方法可把數組轉換為本地字符串,并返回結果。
語法
arrayObject.toLocaleString()
返回值
arrayObject的本地字符串表示。
說明
首先調用每個數組元素的 toLocaleString() 方法,然后使用地區特定的分隔符把生成的字符串連接起來,形成一個字符串。
var arr = new Array(4); arr[0] = "Geroge"; arr[1] = "John"; arr[2] = "Thomas"; arr[3] = 20; console.log(arr.toLocaleString()); // "Geroge,John,Thomas,20"3.13 valueOf
定義和用法
valueOf()方法返回Array對象的原始值。該原始值由Array對象派生的所有對象繼承。valueOf()方法通常由JavaScript在后臺自動調用,并不顯式地出現在代碼中。
語法
arrayObject.valueOf()
var arr = new Array(4); arr[0] = "Geroge"; arr[1] = "John"; arr[2] = "Thomas"; arr[3] = 20; console.log(arr.valueOf()); // ["Geroge", "John", "Thomas", 20]3.14 forEach
定義和用法
forEach()方法用于調用數組的每個元素,并將元素傳遞給回調函數。forEach()對于空數組是不會執行回調函數的。
語法
arrayObject.forEach(function (value, index, arr) {}, thisValue)
參數 | 描述 |
---|---|
function(currentValue, index, arr) | 必需。數組中每個元素需要調用的函數。 currentValue: 必需。當前元素。 index: 可選。當前元素的索引值。 arr: 可選。當前元素所屬的數組對象。 |
thisValue | 可選。傳遞給函數的值一般用"this"值。 如果這個參數為空,嚴格模式下把"undefined"會傳遞給"this"值,普通模式下傳入"window"。 |
var arr = new Array(3); arr[0] = "Geroge"; arr[1] = "John"; arr[2] = "Thomas"; arr.forEach(function (value, index, arr) { console.log(value); // "Geroge" "John" "Thomas" console.log(index); // 0 1 2 console.log(arr); // ["Geroge", "John", "Thomas"] console.log(this); // window }); arr.forEach(function (value, index, arr) { console.log(value); // "Geroge" "John" "Thomas" console.log(index); // 0 1 2 console.log(arr); // ["Geroge", "John", "Thomas"] console.log(this); // ["Geroge", "John", "Thomas"] }, arr);3.15 concat
定義和用法
concat()方法用于連接兩個或多個數組。該方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本。
語法
arrayObject.concat(arrayX,arrayX,......,arrayX)
參數 | 描述 |
---|---|
arrayX | 必需。該參數可以是具體的值,也可以是數組對象。可以是任意多個。 |
返回值
返回一個新的數組。該數組是通過把所有arrayX參數添加到arrayObject中生成的。如果要進行concat()操作的參數是數組,那么添加的是數組中的元素,而不是數組。
var a = [1, 2, 3]; console.log(a.concat(4, 5, [6, 7], 8, 9)); // [1, 2, 3, 4, 5, 6, 7, 8, 9]3.16 every
定義和用法
every()方法用于檢測數組所有元素是否都符合指定條件(通過函數提供)。
every()方法使用指定函數檢測數組中的所有元素:
如果數組中檢測到有一個元素不滿足,則整個表達式返回false,且剩余的元素不會再進行檢測。
如果所有元素都滿足條件,則返回true。
注意:every()不會對空數組進行檢測。
注意:every()不會改變原始數組。
語法
arrayObject.every(function (currentValue, index, arr) {}, thisValue)
參數 | 描述 |
---|---|
function (currentValue, index, arr) | 必需。函數,數組中的每個元素都會執行這個函數。 currentValue: 必需。當前元素。 index: 可選。當前元素的索引值。 arr: 可選。當前元素所屬的數組對象。 |
thisValue | 可選。對象作為該執行回調時使用,傳遞給函數。 |
說明
有一個返回false,則整個every()返回值為false,并且不會執行后續其他項的回調函數。
空數組的every()直接返回true。
var ages = [10, 20, 24, 32, 40]; var result = ages.every(function (value, index, arr) { return value > 25; }); console.log(result); // false ages = []; result = ages.every(function (value, index, arr) { return value > 25; }); console.log(result); // true3.17 some
定義和用法
some()方法用于檢測數組所有元素是否滿足指定條件(通過函數提供)。
every()方法會依次執行數組的每個元素:
如果有一個元素滿足條件,則表達式返回true,剩余的元素不會再執行檢測。
如果沒有滿足條件的元素,則返回false。
注意:some()不會對空數組進行檢測。
注意:some()不會改變原始數組。
語法
arrayObject.some(function (currentValue, index, arr) {}, thisValue)
參數 | 描述 |
---|---|
function (currentValue, index, arr) | 必需。函數,數組中的每個元素都會執行這個函數。 currentValue: 必需。當前元素。 index: 可選。當前元素的索引值。 arr: 可選。當前元素所屬的數組對象。 |
thisValue | 可選。對象作為該執行回調時使用,傳遞給函數。 |
說明
有一個返回true,則整個some()返回值為true,并且不會執行后續其他項的回調函數。
空數組的some()直接返回false。
var ages = [10, 20, 24, 32, 40]; var result = ages.some(function (value, index, arr) { return value > 25; }); console.log(result); // true ages = []; result = ages.some(function (value, index, arr) { return value > 25; }); console.log(result); // false3.18 filter
定義和用法
filter()方法創建一個新的數組,新數組中的元素是通過檢查指定數組中符合條件的所有元素。
注意:filter()不會對空數組進行檢測。
注意:filter()不會改變原始數組。
語法
arrayObject.filter(function (currentValue, index, arr) {}, thisValue)
參數 | 描述 |
---|---|
function (currentValue, index, arr) | 必需。函數,數組中的每個元素都會執行這個函數。 currentValue: 必需。當前元素。 index: 可選。當前元素的索引值。 arr: 可選。當前元素所屬的數組對象。 |
thisValue | 可選。對象作為該執行回調時使用,傳遞給函數。 |
說明
將所有返回true的數組項取出來組成一個新的數組。
var ages = [10, 20, 24, 32, 40]; var result = ages.filter(function (value, index, arr) { return value > 25; }); console.log(result); // [32, 40] console.log(ages); // [10, 20, 24, 32, 40] ages = []; result = ages.filter(function (value, index, arr) { return value > 25; }); console.log(result); // []3.19 reverse
定義和用法
reverse()方法用于顛倒數組中元素的順序。會改變原數組。
語法
arrayObject.reverse()
var arr = new Array(3); arr[0] = "George"; arr[1] = "John"; arr[2] = "Thomas"; console.log(arr); // ["Geroge", "John", "Thomas"] console.log(arr.reverse()); // ["Thomas", "John", "Geroge"] console.log(arr); // ["Thomas", "John", "Geroge"]3.20 map
定義和用法
map()方法返回一個新數組,數組中的元素為原始數組元素調用函數處理后的值。map()方法按照原始數組元素順序依次處理元素。
注意:map()不會對空數組進行檢測。
注意:map()不會改變原始數組。
語法
arrayObject.map(function (currentValue, index, arr) {}, thisValue)
參數 | 描述 |
---|---|
function (currentValue, index, arr) | 必需。函數,數組中的每個元素都會執行這個函數。 currentValue: 必需。當前元素。 index: 可選。當前元素的索引值。 arr: 可選。當前元素所屬的數組對象。 |
thisValue | 可選。對象作為該執行回調時使用,傳遞給函數。 |
var numbers = [65, 20, 11, 5]; var arr = numbers.map(function (value, index, arr) { return value * 2; }) console.log(numbers); // [65, 20, 11, 5] console.log(arr); // [130, 40, 22, 10]3.21 reduce
定義和用法
reduce()方法接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值。
注意:reduce()對于空數組是不會執行回調函數的。
語法
arrayObject.reduce(function (total, currentValue, currentIndex, arr) {}, initialValue)
參數 | 描述 |
---|---|
function (total, currentValue, currentIndex, arr) | 必需。函數,數組中的每個元素都會執行這個函數。 total: 必需。初始值,或者計算結束后的返回值。 currentValue: 必需。當前元素。 currentIndex: 可選。當前元素的索引。 arr: 可選。當前元素所屬的數組對象。 |
initialValue | 可選。傳遞給函數的初始值。 |
var numbers = [15, 2, 1, 7]; var total = numbers.reduce(function (total, currentValue) { console.log(total); // 15 17 18 25 console.log(currentValue); // 2 1 7 return total + currentValue; }); console.log(total); // 25 console.log(numbers); // [15, 2, 1, 7] total = numbers.reduce(function (total, currentValue) { console.log(total); // 20 35 37 38 45 console.log(currentValue); // 15 2 1 7 return total + currentValue; }, 20); console.log(total); // 45 console.log(numbers); // [15, 2, 1, 7]3.22 reduceRight
定義和用法
reduceRight()方法的功能和reduce()功能是一樣的,不同的是reduceRight()從數組的末尾向前將數組中的數組項做累加。
注意:reduceRight()對于空數組是不會執行回調函數的。
語法
arrayObject.reduceRight(function (total, currentValue, currentIndex, arr) {}, initialValue)
參數 | 描述 |
---|---|
function (total, currentValue, currentIndex, arr) | 必需。函數,數組中的每個元素都會執行這個函數。 total: 必需。初始值,或者計算結束后的返回值。 currentValue: 必需。當前元素。 currentIndex: 可選。當前元素的索引。 arr: 可選。當前元素所屬的數組對象。 |
initialValue | 可選。傳遞給函數的初始值。 |
var numbers = [15, 2, 1, 7]; var total = numbers.reduceRight(function (total, currentValue) { console.log(total); // 7 8 10 25 console.log(currentValue); // 1 2 15 return total + currentValue; }); console.log(total); // 25 console.log(numbers); // [15, 2, 1, 7] total = numbers.reduceRight(function (total, currentValue) { console.log(total); // 20 27 28 30 45 console.log(currentValue); // 7 1 2 15 return total + currentValue; }, 20); console.log(total); // 45 console.log(numbers); // [15, 2, 1, 7]結束
本文會同步到我的個人博客,完整代碼可以到我的github倉庫查看,如果對你有幫助的話歡迎點一個Star~~
歡迎關注我的公眾號文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/108119.html
摘要:前言大家好,小弟飛狐,愛學習,愛裝逼,樂于分享,初來乍到,請多多關照。特別注意一下,函數在中是對象,不是一種數據類型,這可是世界的一等公民。和,和的關系又很曖昧,后面細說,要不然會暈菜。基本數據類型,,,,,這五種基本數據類型是按值訪問的。 前言 大家好,小弟飛狐,愛學習,愛裝逼,樂于分享,初來乍到,請多多關照(~ o ~)~zZ。出道幾年,對JavaScript情有獨鐘,聊技術之前,...
摘要:寫兩個幫助函數來創建鏈表。用于把一個節點插入到鏈表的頭部。這個方法應該始終返回一個新的鏈表。接收一個數組為參數,創建對應的鏈表。參考資料的代碼實現的測試 TL;DR 寫兩個幫助函數來創建鏈表。系列目錄見 前言和目錄 。 需求 寫兩個方法 push 和 buildList 來初始化鏈表。嘗試在 buildList 中使用 push 。下面的例子中我用 a -> b -> c 來表示鏈表,...
摘要:用于把對象序列化字符串,在序列化對象時,所有函數及原型成員都會被有意忽略,不體現在結果中。對第步返回的每個值進行相應的序列化。參考文檔高級程序設計作者以樂之名本文原創,有不當的地方歡迎指出。 showImg(https://segmentfault.com/img/bVburW1?w=658&h=494); JSON與JavaScript對象 JSON是一種表示結構化數據的存儲格式,語...
摘要:重復出現的子串要計算它們出現的次數。示例輸入輸出解釋有個子串,,,,它們具有相同數量的連續和。注意在到之間。以此類推,剃掉原字符串的第一個字符后再調用一次方法,直到原字符串只剩下個字符,返回數組的長度,即為題解。 博客原文地址:https://finget.github.io/2019... 反轉整數 給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 示例 ...
閱讀 1164·2023-04-25 17:28
閱讀 3568·2021-10-14 09:43
閱讀 3973·2021-10-09 10:02
閱讀 1950·2019-08-30 14:04
閱讀 3137·2019-08-30 13:09
閱讀 3278·2019-08-30 12:53
閱讀 2907·2019-08-29 17:11
閱讀 1829·2019-08-29 16:58