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

資訊專欄INFORMATION COLUMN

JavaScript數(shù)組使用方法總結(jié)

cyixlq / 2074人閱讀

摘要:第二種方式稱為數(shù)組字面量表示法。是對(duì)數(shù)組進(jìn)行排序。方法方法可以說(shuō)是數(shù)組中功能最強(qiáng)大的方法,集多項(xiàng)功能于一身。的返回值為刪除的元素組成的數(shù)組。不改變數(shù)組的方法轉(zhuǎn)換方法方法主要是用來(lái)將數(shù)組的元素通過(guò)規(guī)定的方式連接成字符串。

作為最常用的類型,JavaScript中的數(shù)組還是和其他語(yǔ)言中有很大的區(qū)別的。
主要體現(xiàn)在兩點(diǎn):

數(shù)組中的每一項(xiàng)都可以保存任何類型的數(shù)據(jù)

數(shù)組的大小可以動(dòng)態(tài)調(diào)整

首先來(lái)介紹創(chuàng)建數(shù)組的兩種方法

1.第一種方式

var arr1 = new Array();

var arr2 = new Array(3);

var arr3 = new Array("jerry");

可以看到這種方式建立數(shù)組,arr1是一個(gè)空數(shù)組,arr2是一個(gè)長(zhǎng)度為3的數(shù)組,arr3是一個(gè)包含‘jerry’一個(gè)元素的數(shù)組。同時(shí)通過(guò)這種方式創(chuàng)建的數(shù)組,new操作符可以省略。

2.第二種方式稱為數(shù)組字面量表示法。

var a = [];
var arr = ["tom","jack"]

數(shù)組的長(zhǎng)度是可動(dòng)態(tài)調(diào)整,導(dǎo)致我們直接就可以設(shè)置它的長(zhǎng)度

var a = [123,423];
a.length = 10;
a[9]="123";
console.log(a[8])//undefined

a[10] = "123"
console.log(a.length)//10

從上面的代碼中我們可以看出:

如果我們?cè)O(shè)置的長(zhǎng)度大于原來(lái)的數(shù)組的長(zhǎng)度的時(shí)候, 數(shù)組后面的元素自動(dòng)設(shè)置為undefined。

如果我們對(duì)大于當(dāng)前數(shù)組長(zhǎng)度的位置賦值的時(shí)候,那么就會(huì)導(dǎo)致數(shù)組的長(zhǎng)度自動(dòng)變?yōu)槟闼x值位置+1.

我們可以把數(shù)組的方法分為三類

改變數(shù)組的方法 棧方法

pop和push很簡(jiǎn)單,也很容易理解。pop就是從數(shù)組的末尾刪除一個(gè)元素并返回。push是在數(shù)組的末尾添加一個(gè)元素。

var arr = [1,3,4];
arr.pop();
console.log(arr);//[1,3]

arr.push(5);
console.log(arr);//[1,3,5]
隊(duì)列方法

shift和unshift是和棧方法是相對(duì)的,它倆是從數(shù)組的頭部進(jìn)行操作。shift是從頭部刪除一個(gè)元素,unshift是從同步加入一個(gè)元素。

var arr = [1,3,4];
arr.shift();
console.log(arr);//[3,4]

arr.unshift(5);
console.log(arr);//[5,3,4]
重排序方法

reverse是對(duì)數(shù)組進(jìn)行翻轉(zhuǎn)。

var arr = [1,3,4];
arr.reverse();
console.log(arr);//[4,3,1]

sort是對(duì)數(shù)組進(jìn)行排序。

var arr = [1,3,5,4];
arr.sort();
console.log(arr);//[1,3,4,5];

sort默認(rèn)的對(duì)數(shù)組進(jìn)行升序排序。sort可以接收一個(gè)自定義的比較函數(shù),自定義排序規(guī)則。

sort方法會(huì)調(diào)用每個(gè)元素的toString()方法,從而通過(guò)字符串進(jìn)行比較大小。即使是數(shù)值,依然要變換成字符串,從而就會(huì)帶來(lái)一些問(wèn)題。比如

var arr = [1,3,15,4];
arr.sort()
console.log(arr);//[1,15,3,4];

轉(zhuǎn)換為字符串之后,‘15’是排在‘3’,‘4’的前面的。這就帶來(lái)了問(wèn)題,所以在進(jìn)行數(shù)值數(shù)組的排序,必須進(jìn)行自定義排序規(guī)則。

var arr = [1,3,15,4];
function compare(v1,v2){
    if(v1 > v2)
        return 1;
    if(v1 < v2)
        return -1;
    return 0;
}
arr.sort(compare)
console.log(arr);//[1,3,4,15]
splice方法

splice方法可以說(shuō)是數(shù)組中功能最強(qiáng)大的方法,集多項(xiàng)功能于一身。主要的用途就是用來(lái)向數(shù)組的中部插入元素。

splice方法主要有三種用法。

splice的返回值為刪除的元素組成的數(shù)組。如果刪除的元素為空,返回空數(shù)組。

刪除元素

splice(index,count),index表示刪除的位置,count表示刪除的項(xiàng)數(shù)。

var arr = [1,3,4];
console.log(arr.splice(2,1));//[4]
//刪除元素
console.log(arr);[1,3];

插入元素

splice(index,0,element,....)
index 表示要插入的位置,0代表刪除0個(gè)元素,element要插入的元素,如果要插入多個(gè)元素,可以繼續(xù)添加。

var arr = [1,3,4];
console.log(arr.splice(2,0,"tom"));//[ ]

console.log(arr);//[1,3,"tom",4]

如果index的值大于數(shù)組本身的長(zhǎng)度,那么就在最后位置添加。且數(shù)組的長(zhǎng)度只會(huì)加1.

var arr = [1,3,4];
console.log(arr.splice(5,0,"tom"));//[ ]

console.log(arr);//[1,3,4,"tom"]
console.log(arr.length);//4

如果index的值為負(fù)數(shù),那么就從(arr.length+index)位置開(kāi)始插入,如果(arr.length+index)的值小于0,那么就從數(shù)組的開(kāi)始位置進(jìn)行插入。

var arr = [1,3,4,4,7,6];
console.log(arr.splice(-1,0,"tom"));//[ ]

console.log(arr);//[1,3,4,4,7,"tom",6]
console.log(arr.length);//7

console.log(arr.splice(-7,0,"tom"));//[ ]

console.log(arr);//["tom",1,3,4,4,7,"tom",6]
console.log(arr.length);//8

console.log(arr.splice(-10,0,"jack"));//[ ]

console.log(arr);//["jack","tom",1,3,4,4,7,"tom",6]
console.log(arr.length);//9

替換元素

splice(index,count,element,....).index代表替換開(kāi)始的位置,count > 0,element表示要替換成的元素。其實(shí)替換過(guò)程包含兩個(gè)過(guò)程:1.刪除. 2插入.也就是上面的兩個(gè)過(guò)程的融合。

var arr = [1,3,4];
console.log(arr.splice(1,1,"tom"));//[3]

console.log(arr);//[1,"tom",4]

如果index大于數(shù)組的長(zhǎng)度,或者小于0,處理的結(jié)果同上面插入元素處理的方式一樣。

不改變數(shù)組的方法 轉(zhuǎn)換方法

join方法主要是用來(lái)將數(shù)組的元素通過(guò)規(guī)定的方式連接成字符串。

var arr = [1,3,4,5];
console.log(arr.join(","))//1,3,4,5
console.log(arr.join("+"))//1+3+4+5
console.log(arr.join("?"))//1?3?4?5
console.log(arr)//[1,3,4,5]
操作方法

slice和concat方法。
slice方法主要用來(lái)返回指定位置的數(shù)組的子數(shù)組。slice(start,end)。end省略,返回的是從開(kāi)始位置到數(shù)組的末尾。end不省略,返回的是從start到end之間的子數(shù)組,包括start位置但不包括end位置的數(shù)組。

var arr = [1,3,4,5];

console.log(arr.slice(1));//[3,4,5]
console.log(arr.slice(1,2));//[3]

如果slice方法的參數(shù)中有一個(gè)負(fù)數(shù),則用數(shù)組長(zhǎng)度加上該數(shù)來(lái)確定相應(yīng)的位置。例如在一個(gè)長(zhǎng)度為5的數(shù)組上調(diào)用slice(-2,-1)與調(diào)用slice(3,4)得到的結(jié)果相同。如果結(jié)束位置小于起始位置,則返回空數(shù)組。

concat 方法,主要是連接多個(gè)數(shù)組。

var arr = [1,3,4,5];
var testArr = [1,23,4];
console.log(arr.concat(testArr));//[1,3,4,5,1,23,4]
console.log(arr.concat("tom"));//[1,3,4,5,"tom"]
迭代方法

ES5新增加的迭代方法主要包括如下幾種

map 
every
some
fliter
forEach

這幾個(gè)方法有一下共同點(diǎn),都接收兩個(gè)參數(shù),一個(gè)是要在數(shù)組上每一項(xiàng)運(yùn)行的函數(shù),一個(gè)是運(yùn)行該函數(shù)作用域的對(duì)象,改變this的指向(可選)。其中函數(shù)需要傳入三個(gè)參數(shù),一個(gè)是每個(gè)元素的值,每個(gè)元素的index,數(shù)組本身。

function(value,index,array)
{
}

下面一個(gè)一個(gè)的來(lái)介紹

map

map返回?cái)?shù)組中每一個(gè)數(shù)組元素經(jīng)過(guò)傳入的函數(shù)處理后組成的新數(shù)組

var arr = [1,3,4];
var newArr = arr.map(function(value,index,array){
    return value*2;
})
console.log(newArr);//[2,6,8]
console.log(arr);//[1,3,4]

some和every

some和every比較相像。some是對(duì)每一個(gè)數(shù)組中的元素運(yùn)行傳入的函數(shù),如果有一個(gè)返回true,那么就返回true;every是對(duì)每一個(gè)數(shù)組中的元素運(yùn)行傳入的函數(shù),如果所有的都返回true,那么就返回true。

var arr = [1,3,4];
var result1 = arr.some(function(value,index,array){
    return value > 2;
})

var result2 = arr.every(function(value,index,array){
    return value > 2;
})
console.log(result1);// true
console.log(result2);// false

filter

從名字可以看出,這是一個(gè)過(guò)濾的方法,返回的一個(gè)數(shù)組,這個(gè)數(shù)組是滿足傳入的參數(shù)的函數(shù)的元素所組成的。

var arr = [1,3,4];
var result = arr.filter(function(value,index,array){
    return value > 2;
})
console.log(result);// [3,4]

forEach

forEach主要用來(lái)遍歷,遍歷數(shù)組中每一個(gè)元素,對(duì)其進(jìn)行操作。該方法沒(méi)有返回值。

var arr = [1,3,4];
arr.forEach(function(value,index,array){
    console.log("arr["+index+"]="+value);
})
// 結(jié)果
arr[0]=1
arr[1]=3
arr[2]=4
縮小方法

reduce和reduceRight.這兩個(gè)方法接收兩個(gè)參數(shù),一個(gè)是每項(xiàng)都運(yùn)行的函數(shù),一個(gè)是縮小基礎(chǔ)的初始值(可選)。reduce和reduceRight返回的是一個(gè)值。其中每項(xiàng)都運(yùn)行的函數(shù)包含四個(gè)參數(shù),

funciton(prev,cur,index,array){
}

下面通過(guò)一個(gè)例子就可以說(shuō)明這個(gè)函數(shù)是干嘛的。

var arr = [1,3,4];
var result = arr.reduce(function(prev,cur,index,array){
    return prev+cur;
},10);
console.log(result)//18
var result1 = arr.reduce(function(prev,cur,index,array){
    return prev+cur;
});
console.log(result1)//8

reduceRight和reduce一樣,無(wú)非他開(kāi)始的位置是從數(shù)組的后面。

其他方法

indexOf()

lastIndexOf()

這兩個(gè)主要是用來(lái)判斷元素在數(shù)組中的位置,未找到返回-1,接收兩個(gè)參數(shù),indexOf(searchElement[, fromIndex]),lastIndexOf(searchElement[, fromIndex])。fromIndex可選。其中formIndex也可以指定字符串。

var arr = [1,3,4,4,1,5,1];
var value = arr.indexOf(1)
console.log(value)//0
value = arr.indexOf(1,4)
console.log(value)//4
value = arr.indexOf(1,5)
console.log(value)//6

value = arr.lastIndexOf(1)
console.log(value)//6

value = arr.lastIndexOf(1,3)
console.log(value)//0

toString()

toLocalString()

valueOf()

這三個(gè)方法是所有對(duì)象都具有的方法。

toString()返回的是一個(gè)字符串,toLocaleString同它類似。valueOf()返回的是一個(gè)數(shù)組

var arr= [1,3,4]
console.log(arr.toString());//1,3,4
console.log(arr.valueOf());//[1,3,4]
console.log(arr.toLocaleString());//1,3,4

可以復(fù)寫(xiě)toString(),toLocaleString()返回不同的結(jié)果。

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

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

相關(guān)文章

  • JavaScript基礎(chǔ)總結(jié)(三)——數(shù)組總結(jié)

    摘要:關(guān)于中的數(shù)組做出了如下總結(jié)數(shù)組是用來(lái)存儲(chǔ)一組不同類型的數(shù)據(jù)的容器。可以使用構(gòu)造函數(shù)的方法和字面量的方法來(lái)聲明函數(shù)訪問(wèn)數(shù)組通過(guò)下標(biāo)的方法來(lái)訪問(wèn)可以獲得數(shù)組長(zhǎng)度。 關(guān)于JavaScript中的數(shù)組做出了如下總結(jié):1、數(shù)組是用來(lái)存儲(chǔ)一組不同類型的數(shù)據(jù)的容器。可以使用構(gòu)造函數(shù)的方法和字面量的方法來(lái)聲明函數(shù);訪問(wèn)數(shù)組通過(guò)下標(biāo)的方法來(lái)訪問(wèn);arr.length可以獲得數(shù)組長(zhǎng)度。2、數(shù)組棧方法包括:...

    enda 評(píng)論0 收藏0
  • JavaScript學(xué)習(xí)總結(jié)(六)數(shù)據(jù)類型和JSON格式

    摘要:并列數(shù)據(jù)的集合數(shù)組用方括號(hào)表示。第三種類型是映射,也就是一個(gè)名值對(duì),即數(shù)據(jù)有一個(gè)名稱,還有一個(gè)與之相對(duì)應(yīng)的值,這又稱作散列或字典,比如首都北京。中有種簡(jiǎn)單數(shù)據(jù)類型也稱為基本數(shù)據(jù)類型和。數(shù)值布爾值對(duì)象和字符串值都有方法。 什么是JSON JSON:JavaScript 對(duì)象表示法(JavaScript Object Notation)。 JSON的形式是用大括號(hào){}包圍起來(lái)的項(xiàng)目列表...

    laznrbfe 評(píng)論0 收藏0
  • JavaScript 基礎(chǔ)知識(shí)】一篇關(guān)于 JavaScript 一些知識(shí)點(diǎn)的總結(jié) —— 持續(xù)更新

    摘要:中基礎(chǔ)數(shù)據(jù)類型數(shù)據(jù)類型名稱數(shù)據(jù)類型說(shuō)明只有一個(gè)值,即,聲明變量的初始值。只有一個(gè)值,即,表示空指針,的值是派生的值。由零或多個(gè)位字符組成只有兩個(gè)值,即和該類型使用來(lái)表示整數(shù)和浮點(diǎn)數(shù)。中的對(duì)象其實(shí)就是一組數(shù)據(jù)和功能的集合。 JavaScript 中基礎(chǔ)數(shù)據(jù)類型 數(shù)據(jù)類型名稱 數(shù)據(jù)類型說(shuō)明 Undefined 只有一個(gè)值,即 undefined ,聲明變量的初始值。 Nul...

    felix0913 評(píng)論0 收藏0
  • JavaScript數(shù)組去重的總結(jié)

    摘要:數(shù)組去重方法的總結(jié)前言在中數(shù)組是比較常用的,本文中總結(jié)了下數(shù)組去重的幾種常用方法,如有問(wèn)題,請(qǐng)指正。 JavaScript數(shù)組去重方法的總結(jié) 前言 在JavaScript中數(shù)組是比較常用的,本文中總結(jié)了下數(shù)組去重的幾種常用方法,如有問(wèn)題,請(qǐng)指正。 簡(jiǎn)單粗暴的一種,ES6中set方法: var arr = [1,2,2,3,3,4,5,5]; console.log([...new Se...

    Tonny 評(píng)論0 收藏0
  • JavaScript基礎(chǔ)總結(jié)(三)——javascript函數(shù)

    摘要:函數(shù)作用通過(guò)函數(shù)來(lái)封裝多條任意語(yǔ)句,可以在任何地方時(shí)候多次調(diào)用執(zhí)行函數(shù)使用聲明,后跟一組參數(shù)以及函數(shù)體。數(shù)組棧方法有數(shù)組頭部添加值,返回新數(shù)組,刪除數(shù)組中第一個(gè)值,返回被刪除的值數(shù)組尾部添加值,返回新數(shù)組數(shù)組尾部刪除值,返回被刪除的值 1、函數(shù)作用:通過(guò)函數(shù)來(lái)封裝多條任意語(yǔ)句,可以在任何地方、時(shí)候多次調(diào)用執(zhí)行;函數(shù)使用function聲明,后跟一組參數(shù)以及函數(shù)體。2、return:立即...

    since1986 評(píng)論0 收藏0
  • JavaScript遍歷對(duì)象和數(shù)組方法總結(jié)

    摘要:日常開(kāi)發(fā)中我們難免需要對(duì)數(shù)組和對(duì)象進(jìn)行遍歷,今天抽空來(lái)總結(jié)下遍歷數(shù)組和對(duì)象常用的方法。使用遍歷對(duì)象注只能遍歷出自身可枚舉的屬性,而不能遍歷出原型鏈上面的屬性。 日常開(kāi)發(fā)中我們難免需要對(duì)數(shù)組和對(duì)象進(jìn)行遍歷,今天抽空來(lái)總結(jié)下遍歷數(shù)組和對(duì)象常用的方法。 Javascript遍歷數(shù)組總結(jié) 我們定義一個(gè)數(shù)組 var arr = [2,4,6]; 1.使用for循環(huán)遍歷 var lengt...

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

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

0條評(píng)論

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