国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript數(shù)據(jù)結(jié)構(gòu)01 - 數(shù)組

godlong_X / 603人閱讀

摘要:元素是通過指定的分隔符進(jìn)行分隔的。如果數(shù)組已經(jīng)為空,則不改變數(shù)組,并返回值??商砑佣鄠€元素返回值把指定的值添加到數(shù)組后的新長度。該參數(shù)是數(shù)組片斷結(jié)束處的數(shù)組下標(biāo)。返回值對數(shù)組的引用。語法返回值的字符串表示。當(dāng)前元素所屬的數(shù)組對象。

一、創(chuàng)建數(shù)組 1.1 使用Array構(gòu)造函數(shù)
var arr1 = new Array(); // 創(chuàng)建一個空數(shù)組
var arr2 = new Array(10);   // 創(chuàng)建一個包含20項的數(shù)組
var arr3 = new Array("liu", "wang", "li");  // 創(chuàng)建一個包含3個字符串的數(shù)組
1.2 使用數(shù)組字面量表示法
var arr1 = [];  // 創(chuàng)建一個空數(shù)組
var arr2 = [10];    // 創(chuàng)建一個包含1項的數(shù)組
var arr3 = ["liu", "wang", "li"];   // 創(chuàng)建一個包含3個字符串的數(shù)組
二、常用數(shù)組方法
方法名 描述
join 把數(shù)組的所有元素放入一個字符串,元素通過指定的分隔符進(jìn)行分隔
pop 刪除并返回數(shù)組的最后一個元素
push 向數(shù)組的末尾添加一個或更多元素,并返回新的長度
shift 刪除并返回數(shù)組的第一個元素
unshift 向數(shù)組的開頭添加一個或更多元素,并返回新的長度
slice 從某個已有的數(shù)組返回指定的元素
indexOf 返回第一個與給定參數(shù)相等的數(shù)組元素的索引,沒有找到則返回-1
lastIndexOf 返回在數(shù)組中搜索到的與給定參數(shù)相等的元素的索引里的最大的值,沒有找到則返回-1
sort 對數(shù)組的元素進(jìn)行排序
splice 刪除元素,并向數(shù)組添加新元素
toString 把數(shù)組轉(zhuǎn)換為字符串,并返回結(jié)果
toLocaleString 把數(shù)組轉(zhuǎn)換為本地字符串,并返回結(jié)果
valueOf 返回數(shù)組對象的原始值
forEach 對數(shù)組中的每一項運行指定函數(shù),這個方法沒有返回值
concat 連接2個或更多數(shù)組,并返回結(jié)果
every 對數(shù)組中的每一項運行指定函數(shù),如果該函數(shù)對每一項都返回true,則返回true
some 對數(shù)組中的每一項運行指定函數(shù),如果任一項返回true,則返回true
filter 對數(shù)組中的每一項運行指定函數(shù),返回該函數(shù)會返回true的項組成的數(shù)組
reverse 顛倒數(shù)組中元素的順序
map 對數(shù)組中的每一項運行指定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組
reduce 接收一個函數(shù)作為累加器,數(shù)組中的每個值(從左到右)開始縮減,最終計算為一個值
reduceRight 接收一個函數(shù)作為累加器,數(shù)組中的每個值(從右到左)開始縮減,最終計算為一個值

PS:原始值是指固定而簡單的值,存放在棧中的簡單數(shù)據(jù)段,它們的值直接存儲在變量訪問的位置。

JavaScript中有五種原始類型,也叫基本類型:

Number、String、Boolean、Undefined、Null

三、演示實例 3.1 join

定義和用法

join()方法用于把數(shù)組中的所有元素放入一個字符串。

元素是通過指定的分隔符進(jìn)行分隔的。

語法

arrayObject.join(separator)
參數(shù) 描述
seperator 可選。指定要使用的分隔符,如果省略該參數(shù),則使用逗號作為分隔符

返回值

返回一個字符串。該字符串是通過把 arrayObject 的每個元素轉(zhuǎn)換為字符串,然后把這些字符串連接起來,在兩個元素之間插入 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()方法用于刪除并返回數(shù)組的最后一個元素。

語法

arrayObject.pop()

返回值

arrayObject 的最后一個元素。

說明

pop() 方法將刪除 arrayObject 的最后一個元素,把數(shù)組長度減 1,并且返回它刪除的元素的值。如果數(shù)組已經(jīng)為空,則 pop() 不改變數(shù)組,并返回 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()方法可向數(shù)組的末尾添加一個或多個元素,并返回新的長度。

語法

arrayObject.push(newElement1, newElement2, ..., newElementX)
參數(shù) 描述
newElement1 必需。要添加到數(shù)組末尾的第一個元素
newElement2 可選。要添加到數(shù)組末尾的第二個元素
newElementX 可選??商砑佣鄠€元素

返回值

把指定的值添加到數(shù)組后的新長度。

說明

push() 方法可把它的參數(shù)順序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是創(chuàng)建一個新的數(shù)組。push() 方法和 pop() 方法使用數(shù)組提供的先進(jìn)后出棧的功能。

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()方法用于把數(shù)組的第一個元素從其中刪除,并返回第一個元素的值。

語法

arrayObject.shift()

返回值

數(shù)組原來的第一個元素的值。

說明

如果數(shù)組是空的,那么 shift() 方法將不進(jìn)行任何操作,返回 undefined 值。請注意,該方法不創(chuàng)建新數(shù)組,而是直接修改原有的 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()方法可向數(shù)組的開頭添加一個或多個元素,并返回新的長度。

語法

arrayObject.unshift(newElement1, newElement2, ..., newElementX)
參數(shù) 描述
newElement1 必需。要添加到數(shù)組開頭的第一個元素
newElement2 可選。要添加到數(shù)組開頭的第二個元素
newElementX 可選??商砑佣鄠€元素

返回值

arrayObject 的新長度。

說明

unshift() 方法將把它的參數(shù)插入 arrayObject 的頭部,并將已經(jīng)存在的元素順次地移到較高的下標(biāo)處,以便留出空間。該方法的第一個參數(shù)將成為數(shù)組的新元素 0,如果還有第二個參數(shù),它將成為新的元素 1,以此類推。

請注意,unshift() 方法不創(chuàng)建新的創(chuàng)建,而是直接修改原有的數(shù)組。

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()方法可從已有的數(shù)組中返回選定的元素。slice()方法不改變原數(shù)組。

語法

arrayObject.slice(start, end)
參數(shù) 描述
start 必需。規(guī)定從何處開始選取。
如果是負(fù)數(shù),那么它規(guī)定從數(shù)組尾部開始算起的位置。
也就是說,-1指最后一個元素,-2指倒數(shù)第二個元素,以此類推。
end 可選。規(guī)定從何處結(jié)束選取。
該參數(shù)是數(shù)組片斷結(jié)束處的數(shù)組下標(biāo)。
如果沒有指定該參數(shù),那么切分的數(shù)組包含從start到數(shù)組結(jié)束的所有元素。
如果這個參數(shù)是負(fù)數(shù),那么它規(guī)定的是從數(shù)組尾部開始算起的元素。

返回值

返回一個新的數(shù)組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。

說明

請注意,該方法并不會修改數(shù)組,而是返回一個子數(shù)組。如果想刪除數(shù)組中的一段元素,應(yīng)該使用方法 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()方法可返回某個指定的值在數(shù)組中首次出現(xiàn)的位置。從左往右找,找不到返回-1。

語法

arrayObject.indexOf(searchValue, fromIndex)
參數(shù) 描述
searchValue 必需。規(guī)定需檢索的值。
fromIndex 可選的整數(shù)參數(shù),開始查找的位置。
如果該索引值大于或等于數(shù)組長度,意味著不會在數(shù)組里查找,返回-1。
如果參數(shù)中提供的索引值是一個負(fù)值,則將其作為數(shù)組末尾的一個抵消,
即-1表示從最后一個元素開始查找,-2表示從倒數(shù)第二個元素開始查找 ,以此類推。
注意:如果參數(shù)中提供的索引值是一個負(fù)值,并不改變其查找順序,
查找順序仍然是從前向后查詢數(shù)組。如果抵消后的索引值仍小于0,
則整個數(shù)組都將會被查詢。其默認(rèn)值為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"));              // -1
3.8 lastIndexOf

定義和用法

lastIndexOf()方法可返回某個指定的值在數(shù)組中首次出現(xiàn)的位置。從右往左找,找不到返回-1。

語法

arrayObject.indexOf(searchValue, fromIndex)
參數(shù) 描述
searchValue 必需。規(guī)定需檢索的值。
fromIndex 可選的整數(shù)參數(shù),從此位置開始逆向查找。
默認(rèn)為數(shù)組的長度減 1,即整個數(shù)組都被查找。
如果該值大于或等于數(shù)組的長度,則整個數(shù)組會被查找。
如果為負(fù)值,將其視為從數(shù)組末尾向前的偏移。
即使該值為負(fù),數(shù)組仍然會被從后向前查找。
如果該值為負(fù)時,其絕對值大于數(shù)組長度,則方法返回 -1,即數(shù)組不會被查找
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"));              // -1
3.9 sort

定義和用法

sort()方法用于對數(shù)組的元素進(jìn)行排序。

語法

arrayObject.sort(sortby)
參數(shù) 描述
sortby 可選。規(guī)定排序順序。必須是函數(shù)。

返回值

對數(shù)組的引用。請注意,數(shù)組在原數(shù)組上進(jìn)行排序,不生成副本。

說明

如果調(diào)用該方法時沒有使用參數(shù),將按字母順序?qū)?shù)組中的元素進(jìn)行排序,說的更精確點,是按照字符編碼的順序進(jìn)行排序。要實現(xiàn)這一點,首先應(yīng)把數(shù)組的元素都轉(zhuǎn)換成字符串(如有必要),以方便比較。

如果想按照其他標(biāo)準(zhǔn)進(jìn)行排序,就需要提供比較函數(shù),該函數(shù)要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數(shù)字。比較函數(shù)應(yīng)該具有兩個參數(shù)a和b,其返回值如下:

若a小于b,在排序后的數(shù)組中a應(yīng)該出現(xiàn)在b之前,則返回一個小于0的值。

若a等于b,則返回0。

若a大于b,則返回一個大于0的值。

即順序 return a - b; 倒序 return b - a;

a在b前返回負(fù)數(shù),a在b后返回正數(shù)

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()方法向/從數(shù)組中添加/刪除項目,然后返回被刪除的項目。該方法會改變原始數(shù)組。

語法

arrayObject.splice(index, howmany, item1, ......, itemX)
參數(shù) 描述
index 必需。整數(shù),規(guī)定添加/刪除項目的位置,使用負(fù)數(shù)可從數(shù)組結(jié)尾處規(guī)定位置。
howmany 必需。要刪除的項目數(shù)量。如果設(shè)置為0,則不會刪除項目。
item1,......,itemX 可選。向數(shù)組添加的新項目。

返回值

類型 描述
Array 包含被刪除項目的新數(shù)組,如果有的話。

說明

splice()方法可刪除從index處開始的0個或多個元素,并且用參數(shù)列表中聲明的一個或多個值來替換那些被刪除的元素。如果從arrayObject中刪除了元素,則返回的是含有被刪除的元素的數(shù)組。

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()方法可把數(shù)組轉(zhuǎn)換為字符串,并返回結(jié)果。

語法

arrayObject.toString()

返回值

arrayObject的字符串表示。返回值與沒有參數(shù)的join()方法返回的字符串相同。

說明

當(dāng)數(shù)組用于字符串環(huán)境時,JavaScript會調(diào)用這一方法將數(shù)組自動轉(zhuǎn)換成字符串。但是在某些情況下,需要顯式地調(diào)用該方法。

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()方法可把數(shù)組轉(zhuǎn)換為本地字符串,并返回結(jié)果。

語法

arrayObject.toLocaleString()

返回值

arrayObject的本地字符串表示。

說明

首先調(diào)用每個數(shù)組元素的 toLocaleString() 方法,然后使用地區(qū)特定的分隔符把生成的字符串連接起來,形成一個字符串。

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在后臺自動調(diào)用,并不顯式地出現(xiàn)在代碼中。

語法

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()方法用于調(diào)用數(shù)組的每個元素,并將元素傳遞給回調(diào)函數(shù)。forEach()對于空數(shù)組是不會執(zhí)行回調(diào)函數(shù)的。

語法

arrayObject.forEach(function (value, index, arr) {}, thisValue)
參數(shù) 描述
function(currentValue, index, arr) 必需。數(shù)組中每個元素需要調(diào)用的函數(shù)。
currentValue: 必需。當(dāng)前元素。
index: 可選。當(dāng)前元素的索引值。
arr: 可選。當(dāng)前元素所屬的數(shù)組對象。
thisValue 可選。傳遞給函數(shù)的值一般用"this"值。
如果這個參數(shù)為空,嚴(yán)格模式下把"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()方法用于連接兩個或多個數(shù)組。該方法不會改變現(xiàn)有的數(shù)組,而僅僅會返回被連接數(shù)組的一個副本。

語法

arrayObject.concat(arrayX,arrayX,......,arrayX)
參數(shù) 描述
arrayX 必需。該參數(shù)可以是具體的值,也可以是數(shù)組對象??梢允侨我舛鄠€。

返回值

返回一個新的數(shù)組。該數(shù)組是通過把所有arrayX參數(shù)添加到arrayObject中生成的。如果要進(jìn)行concat()操作的參數(shù)是數(shù)組,那么添加的是數(shù)組中的元素,而不是數(shù)組。

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()方法用于檢測數(shù)組所有元素是否都符合指定條件(通過函數(shù)提供)。
every()方法使用指定函數(shù)檢測數(shù)組中的所有元素:

如果數(shù)組中檢測到有一個元素不滿足,則整個表達(dá)式返回false,且剩余的元素不會再進(jìn)行檢測。

如果所有元素都滿足條件,則返回true。

注意:every()不會對空數(shù)組進(jìn)行檢測。
注意:every()不會改變原始數(shù)組。

語法

arrayObject.every(function (currentValue, index, arr) {}, thisValue)
參數(shù) 描述
function (currentValue, index, arr) 必需。函數(shù),數(shù)組中的每個元素都會執(zhí)行這個函數(shù)。
currentValue: 必需。當(dāng)前元素。
index: 可選。當(dāng)前元素的索引值。
arr: 可選。當(dāng)前元素所屬的數(shù)組對象。
thisValue 可選。對象作為該執(zhí)行回調(diào)時使用,傳遞給函數(shù)。

說明

有一個返回false,則整個every()返回值為false,并且不會執(zhí)行后續(xù)其他項的回調(diào)函數(shù)。
空數(shù)組的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);    // true
3.17 some

定義和用法

some()方法用于檢測數(shù)組所有元素是否滿足指定條件(通過函數(shù)提供)。
every()方法會依次執(zhí)行數(shù)組的每個元素:

如果有一個元素滿足條件,則表達(dá)式返回true,剩余的元素不會再執(zhí)行檢測。

如果沒有滿足條件的元素,則返回false。

注意:some()不會對空數(shù)組進(jìn)行檢測。
注意:some()不會改變原始數(shù)組。

語法

arrayObject.some(function (currentValue, index, arr) {}, thisValue)
參數(shù) 描述
function (currentValue, index, arr) 必需。函數(shù),數(shù)組中的每個元素都會執(zhí)行這個函數(shù)。
currentValue: 必需。當(dāng)前元素。
index: 可選。當(dāng)前元素的索引值。
arr: 可選。當(dāng)前元素所屬的數(shù)組對象。
thisValue 可選。對象作為該執(zhí)行回調(diào)時使用,傳遞給函數(shù)。

說明

有一個返回true,則整個some()返回值為true,并且不會執(zhí)行后續(xù)其他項的回調(diào)函數(shù)。
空數(shù)組的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);    // false
3.18 filter

定義和用法

filter()方法創(chuàng)建一個新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素。

注意:filter()不會對空數(shù)組進(jìn)行檢測。
注意:filter()不會改變原始數(shù)組。

語法

arrayObject.filter(function (currentValue, index, arr) {}, thisValue)
參數(shù) 描述
function (currentValue, index, arr) 必需。函數(shù),數(shù)組中的每個元素都會執(zhí)行這個函數(shù)。
currentValue: 必需。當(dāng)前元素。
index: 可選。當(dāng)前元素的索引值。
arr: 可選。當(dāng)前元素所屬的數(shù)組對象。
thisValue 可選。對象作為該執(zhí)行回調(diào)時使用,傳遞給函數(shù)。

說明

將所有返回true的數(shù)組項取出來組成一個新的數(shù)組。

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()方法用于顛倒數(shù)組中元素的順序。會改變原數(shù)組。

語法

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()方法返回一個新數(shù)組,數(shù)組中的元素為原始數(shù)組元素調(diào)用函數(shù)處理后的值。map()方法按照原始數(shù)組元素順序依次處理元素。

注意:map()不會對空數(shù)組進(jìn)行檢測。
注意:map()不會改變原始數(shù)組。

語法

arrayObject.map(function (currentValue, index, arr) {}, thisValue)
參數(shù) 描述
function (currentValue, index, arr) 必需。函數(shù),數(shù)組中的每個元素都會執(zhí)行這個函數(shù)。
currentValue: 必需。當(dāng)前元素。
index: 可選。當(dāng)前元素的索引值。
arr: 可選。當(dāng)前元素所屬的數(shù)組對象。
thisValue 可選。對象作為該執(zhí)行回調(diào)時使用,傳遞給函數(shù)。
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()方法接收一個函數(shù)作為累加器,數(shù)組中的每個值(從左到右)開始縮減,最終計算為一個值。

注意:reduce()對于空數(shù)組是不會執(zhí)行回調(diào)函數(shù)的。

語法

arrayObject.reduce(function (total, currentValue, currentIndex, arr) {}, initialValue)
參數(shù) 描述
function (total, currentValue, currentIndex, arr) 必需。函數(shù),數(shù)組中的每個元素都會執(zhí)行這個函數(shù)。
total: 必需。初始值,或者計算結(jié)束后的返回值。
currentValue: 必需。當(dāng)前元素。
currentIndex: 可選。當(dāng)前元素的索引。
arr: 可選。當(dāng)前元素所屬的數(shù)組對象。
initialValue 可選。傳遞給函數(shù)的初始值。
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()從數(shù)組的末尾向前將數(shù)組中的數(shù)組項做累加。

注意:reduceRight()對于空數(shù)組是不會執(zhí)行回調(diào)函數(shù)的。

語法

arrayObject.reduceRight(function (total, currentValue, currentIndex, arr) {}, initialValue)
參數(shù) 描述
function (total, currentValue, currentIndex, arr) 必需。函數(shù),數(shù)組中的每個元素都會執(zhí)行這個函數(shù)。
total: 必需。初始值,或者計算結(jié)束后的返回值。
currentValue: 必需。當(dāng)前元素。
currentIndex: 可選。當(dāng)前元素的索引。
arr: 可選。當(dāng)前元素所屬的數(shù)組對象。
initialValue 可選。傳遞給函數(shù)的初始值。
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]
結(jié)束

本文會同步到我的個人博客,完整代碼可以到我的github倉庫查看,如果對你有幫助的話歡迎點一個Star~~

歡迎關(guān)注我的公眾號

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/108119.html

相關(guān)文章

  • 聽飛狐聊JavaScript設(shè)計模式系列01

    摘要:前言大家好,小弟飛狐,愛學(xué)習(xí),愛裝逼,樂于分享,初來乍到,請多多關(guān)照。特別注意一下,函數(shù)在中是對象,不是一種數(shù)據(jù)類型,這可是世界的一等公民。和,和的關(guān)系又很曖昧,后面細(xì)說,要不然會暈菜?;緮?shù)據(jù)類型,,,,,這五種基本數(shù)據(jù)類型是按值訪問的。 前言 大家好,小弟飛狐,愛學(xué)習(xí),愛裝逼,樂于分享,初來乍到,請多多關(guān)照(~ o ~)~zZ。出道幾年,對JavaScript情有獨鐘,聊技術(shù)之前,...

    CHENGKANG 評論0 收藏0
  • JavaScript 實現(xiàn)鏈表操作 - 01 Push & Build List

    摘要:寫兩個幫助函數(shù)來創(chuàng)建鏈表。用于把一個節(jié)點插入到鏈表的頭部。這個方法應(yīng)該始終返回一個新的鏈表。接收一個數(shù)組為參數(shù),創(chuàng)建對應(yīng)的鏈表。參考資料的代碼實現(xiàn)的測試 TL;DR 寫兩個幫助函數(shù)來創(chuàng)建鏈表。系列目錄見 前言和目錄 。 需求 寫兩個方法 push 和 buildList 來初始化鏈表。嘗試在 buildList 中使用 push 。下面的例子中我用 a -> b -> c 來表示鏈表,...

    Scorpion 評論0 收藏0
  • 讀書筆記(01) - JSON - JavaScript高級程序設(shè)計

    摘要:用于把對象序列化字符串,在序列化對象時,所有函數(shù)及原型成員都會被有意忽略,不體現(xiàn)在結(jié)果中。對第步返回的每個值進(jìn)行相應(yīng)的序列化。參考文檔高級程序設(shè)計作者以樂之名本文原創(chuàng),有不當(dāng)?shù)牡胤綒g迎指出。 showImg(https://segmentfault.com/img/bVburW1?w=658&h=494); JSON與JavaScript對象 JSON是一種表示結(jié)構(gòu)化數(shù)據(jù)的存儲格式,語...

    mengbo 評論0 收藏0
  • JavaScript數(shù)據(jù)結(jié)構(gòu)與算法-String-(leetcode原題)

    摘要:重復(fù)出現(xiàn)的子串要計算它們出現(xiàn)的次數(shù)。示例輸入輸出解釋有個子串,,,,它們具有相同數(shù)量的連續(xù)和。注意在到之間。以此類推,剃掉原字符串的第一個字符后再調(diào)用一次方法,直到原字符串只剩下個字符,返回數(shù)組的長度,即為題解。 博客原文地址:https://finget.github.io/2019... 反轉(zhuǎn)整數(shù) 給出一個 32 位的有符號整數(shù),你需要將這個整數(shù)中每位上的數(shù)字進(jìn)行反轉(zhuǎn)。 示例 ...

    KoreyLee 評論0 收藏0
  • array數(shù)組類型

    摘要:中并沒有明確的數(shù)組數(shù)據(jù)類型。創(chuàng)建一維數(shù)組具有以下幾種方式二維數(shù)組數(shù)組是可以嵌套,這就意味著一個數(shù)組可以作為一個數(shù)組被包含在另外一個數(shù)組里面。利用這個特點,創(chuàng)建二維數(shù)組,即數(shù)組的數(shù)組。刪除數(shù)組的最后一個元素并返回刪除的元素。 Array 概述 一維數(shù)組 數(shù)組是一個有序的數(shù)據(jù)集合,可以通過數(shù)組名稱和索引進(jìn)行訪問。JavaScript中并沒有明確的數(shù)組數(shù)據(jù)類型。創(chuàng)建一維數(shù)組具有以下幾種方式:...

    lemanli 評論0 收藏0
  • 煦涵說JSON

    摘要:對象表示法,是一種數(shù)據(jù)交換格式,能夠在服務(wù)器端交換數(shù)據(jù),年由提出,目的是取代繁瑣笨重的格式。煦涵煦涵煦涵煦涵煦涵參考文檔感謝您的閱讀作者煦涵年月日下面是實驗室的微信公眾號二維碼,歡迎長按掃描關(guān)注 JSON(Javascript Object Notaion, javascript 對象表示法), 是一種數(shù)據(jù)交換格式,能夠在服務(wù)器端交換數(shù)據(jù), 2001年由Douglas Crockfor...

    lowett 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<