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

資訊專欄INFORMATION COLUMN

Javascript 中的 Array 操作

khs1994 / 547人閱讀

摘要:語法函數(shù)的幾個(gè)參數(shù)含義上一次執(zhí)行函數(shù)后返回的值當(dāng)前數(shù)組元素值當(dāng)前數(shù)組元素索引遍歷的數(shù)組對(duì)象第一次調(diào)用函數(shù)時(shí),如果有值,則為,為數(shù)組第一個(gè)元素。

Javascript 中的 Array 操作

在各種語言中,數(shù)組總是一個(gè)比較重要的數(shù)據(jù)結(jié)構(gòu),Javascript 中的 Array 也不例外。Javascript 中的 Array 提供了一系列方法可以更好地讓我們操作 Array 中的元素,下面我們就來看看這些操作方法。

Array 之基本操作

在基本操作部分,我們約定,加粗的方法可以改變數(shù)組本身,其余方法不改變。

1、 Array 創(chuàng)建

利用字面量創(chuàng)建 Array (推薦): var arr = [];

利用 Array 對(duì)象創(chuàng)建 Array: var arr = new Array([length]);//可以指定數(shù)組長(zhǎng)度,注意不是數(shù)組上限;

利用 Array 對(duì)象創(chuàng)建 Array: var arr = new Array(value1, value2, value3, …);
注意:Javascript 中 Array 中的元素不要求類型一致;

2、 Array 訪問元素

var value = arr[index];

Array.slice(start[, end]);//從 start 位置開始截取原數(shù)組至 end (不包括 end 位置),返回截取的數(shù)組。若省略 end ,則截取 start 位置后所有元素;

3、 Array 添加與刪除元素 在數(shù)組末尾添加或刪除元素:

Array.push(value1, value2, vlaue3, …);//將一個(gè)或多個(gè)元素附加在數(shù)組末尾,并返回新數(shù)組長(zhǎng)度;

Array.pop();//移除數(shù)組最后一個(gè)值,并返回該元素值;

在數(shù)組開始添加或刪除元素:

Array.unshif(value1, value2, value3, …);//將一個(gè)或多個(gè)元素附加在數(shù)組開頭,原數(shù)組元素依次后移,并返回新數(shù)組長(zhǎng)度;

Array.shift();//移除數(shù)組第一個(gè)值,并返回該元素值;

在任意位置添加或刪除元素:

Array.splice(pos, 0, value1, value2, value3, ...);//從數(shù)組 pos 位置開始刪除 0 個(gè)元素,并在刪除的位置插入value1, vlaue2, vlaue3…,并返回一個(gè)空數(shù)組;

Array.splice(pos, count);//從數(shù)組 pos 位置開始刪除 count 個(gè)元素,

4、 Array 合并

Array.concat(para);// para 可以為數(shù)組或元素值,也可以為兩者組合,將所有元素連接成一個(gè)數(shù)組,返回連接好的數(shù)組;

5、 Array 字符串化

Array.join(sperator);//返回由數(shù)組元素組成并由 seperator 分隔的字符串。若 seperator 為空,則默認(rèn)以 “,” 連接;

Array.toString()Array.toLocaleString();//返回由數(shù)組元素組成并由“,”分隔的字符串(不常用);兩種方法的區(qū)別在于 toLocaleString() 會(huì)轉(zhuǎn)變?yōu)楸镜丨h(huán)境字符串(如Date.toLocalString() 會(huì)轉(zhuǎn)化為當(dāng)?shù)貢r(shí)間格式的字符串),toString() 則轉(zhuǎn)為傳統(tǒng)字符串; Array 的這兩種方法用法無區(qū)別;

6、 Array 排序

Array.reverse();//顛倒數(shù)組中的元素;

Array.sort();//按字符編碼進(jìn)行排序,支持自定義排序函數(shù);

7、 Array 查找

indexOf()//返回第一個(gè)與給定參數(shù)相等的數(shù)組元素的索引,沒有找到則返回-1。

lastIndexOf()//返回在數(shù)組中搜索到的與給定參數(shù)相等的元素的最后(最大)索引。

8、 其他函數(shù)

Array.isArray();//判斷某個(gè)值是否為數(shù)組;

Array 之高級(jí)操作

首先介紹 Array 的 5 種迭代函數(shù)。這 5 種函數(shù)的特點(diǎn)是都有一個(gè) callback 函數(shù),函數(shù)會(huì)為每一個(gè)數(shù)組元素調(diào)用一次 callback 函數(shù)。可選參數(shù)是 thisArg, 作為 callback被調(diào)用時(shí)的 this 值,如果沒有傳入 thisArg 值,則在非嚴(yán)格模式下將會(huì)是全局對(duì)象,嚴(yán)格模式下是 undefined。其中,callback 函數(shù)中包含三個(gè)參數(shù),分別是當(dāng)前元素的值、當(dāng)前元素索引和被遍歷的數(shù)組。這 5 種函數(shù)遍歷的元素個(gè)數(shù)在第一次調(diào)用 callback 函數(shù)時(shí)就已經(jīng)確定,即以后即使添加元素也不會(huì)改變遍歷次數(shù),未訪問到且被刪除的值不會(huì)被 callback 訪問到,未訪問到且被修改的元素被修改后,傳遞給 callback 的值是被修改后的值。

1、 Array.forEach()

遍歷并為每一項(xiàng)元素執(zhí)行一遍 callback 函數(shù)。是 5 個(gè)函數(shù)中唯一一個(gè)沒有返回值的函數(shù)。

var arr = [1, 2, 3];
arr.forEach(function(ele) {
    console.log(ele);
});

運(yùn)行結(jié)果:

1
2
3
2、 Array.map()

遍歷并處理所有元素,返回由每個(gè) callback 函數(shù)返回值組成的新數(shù)組。

var arr = [1, 2, 3];
var newArr = arr.map(function(ele) {
    return "element" + ele;
});
console.log(newArr);
console.log(arr);

運(yùn)行結(jié)果:

["element1", "element2", "element3"]
[1, 2, 3]
3、 Array.filter()

遍歷所有元素,過濾掉不符合條件(即使得 callback 返回 false)的元素。

var arr = [1, 2, 3, 11, 12, 13];
var newArr = arr.filter(function(ele) {
    return ele > 10;
});
console.log(newArr);
console.log(arr);

運(yùn)行結(jié)果:

[11, 12, 13]
[1, 2, 3, 11, 12, 13]
4、 Array.every()

遍歷所有元素,當(dāng)所有元素使得 callback 返回 true,則返回 true,否則返回 false。

var arr1 = [9, 12, 13];
var result1 = arr1.every(function(ele) {
    return ele > 10;
});

var arr2 = [11, 12, 13];
var result2 = arr2.every(function(ele) {
    return ele > 10;
});

console.log(arr1);
console.log("result1:" + result1);
console.log(arr2);
console.log("result2:" + result2);

運(yùn)行結(jié)果:

[9, 12, 13]
result1:false
[11, 12, 13]
result2:true
5、 Array.some()

遍歷所有元素,只要找到一個(gè)元素使得 callback 返回 true,則返回 true,否則返回 false。

var arr1 = [1,3,5,7,9];
var result1 = arr1.some(function(ele) {
    return ele > 10;
});

var arr2 = [1,2,3,11];
var result2 = arr2.some(function(ele) {
    return ele > 10;
});

console.log(arr1);
console.log("result1:" + result1);
console.log(arr2);
console.log("result2:" + result2);

運(yùn)行結(jié)果:

[1, 3, 5, 7, 9]
result1:false
[1, 2, 3, 11]
result2:true
6、 Array.reduce()

將數(shù)組中的元素從左到右進(jìn)行縮減,最終縮減為一個(gè)值。

Array.reduce()語法:

Array.reduce(function(previousValue, currentValue, index, array){

}, [initialValue]);

callback 函數(shù)的幾個(gè)參數(shù)含義:

previousValue:上一次執(zhí)行 callback 函數(shù)后返回的值

currentValue:當(dāng)前數(shù)組元素值

index:當(dāng)前數(shù)組元素索引

array:遍歷的數(shù)組對(duì)象

第一次調(diào)用 callback 函數(shù)時(shí),如果 initialValue 有值,則 previousValue 為 initialValue,
currentValue 為數(shù)組第一個(gè)元素。否則 previousValue 為數(shù)組第一個(gè)元素,currentValue 為數(shù)組第二個(gè)元素。

var arr = ["a", "b", "c"];
arr.reduce(function(pre, cur, ind, array) {
    console.log(ind);
});

運(yùn)行結(jié)果:

1
2

再看另一個(gè)有 initialValue 的例子:

var arr = ["a", "b", "c"];
arr.reduce(function(pre, cur, ind, array) {
    console.log(ind);
}, "z");

運(yùn)行結(jié)果是:

0
1
2

隨著 ES6 的誕生,Array 出現(xiàn)了更多的方法。考慮到瀏覽器的兼容性,在使用下面的方法時(shí)需要注意所使用的瀏覽器是否支持。

7、Array.from()

將一個(gè)類數(shù)組對(duì)象或可迭代對(duì)象轉(zhuǎn)換成真實(shí)的數(shù)組。

類數(shù)組對(duì)象: 擁有一個(gè) length 屬性和若干索引屬性的任意對(duì)象

可迭代對(duì)象: 你可以從它身上迭代出若干個(gè)元素的對(duì)象,比如有 Map 和 Set 等(Map 與 Set 均為 ES6 中新的對(duì)象)

var arr = Array.from("Hello");
console.log(arr);

運(yùn)行結(jié)果:

[ "H", "e", "l", "l", "o" ]
8、Array.values()

將一個(gè)數(shù)組轉(zhuǎn)換成一個(gè)可迭代的對(duì)象,該對(duì)象包含數(shù)組每個(gè)索引的值。

var arr = ["a", "b", "c"];
var obj = arr.values();
for (let letter of obj) {
    console.log(letter);
}

運(yùn)行結(jié)果:

a
b
c

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

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

相關(guān)文章

  • JS淬煉: Array進(jìn)階

    摘要:的這種實(shí)現(xiàn)方式導(dǎo)致了一些尷尬問題,比如刪除元素元素遍歷。后面的參數(shù)被忽略掉了,表示并沒有要插入的元素。其實(shí),的本質(zhì)是跟蹤中的,并始終保持值是。這時(shí)候,雖然不大可能,可能會(huì)在中間某個(gè)中被用戶重新定義。但是在上進(jìn)行這種操作是很糟糕的。 在Javascript中,array是一個(gè)類數(shù)組的object。顧名思義,它能夠在一個(gè)變量上存儲(chǔ)多個(gè)值。 數(shù)組是值的有序集合。每個(gè)值叫做一個(gè)元素,而每個(gè)元素...

    jimhs 評(píng)論0 收藏0
  • JavaScript 在 V8 中的元素種類及性能優(yōu)化

    摘要:常規(guī)元素,不能表示為或雙精度的值。元素種類可從過渡轉(zhuǎn)變?yōu)椤_@是一個(gè)簡(jiǎn)化的可視化,僅顯示最常見的元素種類只能通過格子向下過渡。目前有種不同的元素種類,每種元素都有自己的一組可能的優(yōu)化。再次重申更具體的元素種類可以進(jìn)行更細(xì)粒度的優(yōu)化。 原文:Elements kinds in V8 JavaScript 對(duì)象可以具有與它們相關(guān)聯(lián)的任意屬性。對(duì)象屬性的名稱可以包含任何字符。JavaScrip...

    UsherChen 評(píng)論0 收藏0
  • 學(xué)習(xí)筆記: JS數(shù)組

    摘要:數(shù)組元素甚至可以是對(duì)象或其它數(shù)組。它執(zhí)行的是淺拷貝,這意味著如果數(shù)組元素是對(duì)象,兩個(gè)數(shù)組都指向相同的對(duì)象,對(duì)新數(shù)組中的對(duì)象修改,會(huì)在舊的數(shù)組的相同對(duì)象中反應(yīng)出來。 JS中的數(shù)組是弱類型的,數(shù)組中可以含有不同類型的元素。數(shù)組元素甚至可以是對(duì)象或其它數(shù)組。JS引擎一般會(huì)優(yōu)化數(shù)組,按索引訪問數(shù)組常常比訪問一般對(duì)象屬性明顯迅速。數(shù)組長(zhǎng)度范圍 from 0 to 4,294,967,295(2^...

    archieyang 評(píng)論0 收藏0
  • JavaScript面向?qū)ο缶幊獭?em>Array類型

    摘要:中并沒有明確的數(shù)組數(shù)據(jù)類型。返回?cái)?shù)組對(duì)象的原始值。專門用于篩選出數(shù)組中符合函數(shù)判斷條件的元素組成的心數(shù)組。專門用于對(duì)原數(shù)組中每個(gè)元素執(zhí)行相同的函數(shù)對(duì)象規(guī)定的操作。 概述 一維數(shù)組 數(shù)組是一個(gè)有序的數(shù)據(jù)集合,可以通過數(shù)組名稱和索引進(jìn)行訪問。JavaScript中并沒有明確的數(shù)組數(shù)據(jù)類型。 二維數(shù)組 數(shù)組是可以嵌套的,這就意味著一個(gè)數(shù)組可以作為一個(gè)袁旭被包含在另一個(gè)數(shù)組里面。利用JavaS...

    DirtyMind 評(píng)論0 收藏0
  • array數(shù)組類型

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

    lemanli 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<