成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【JavaScript入門】Array類型

zxhaaa / 2467人閱讀

摘要:數(shù)組也是對(duì)象數(shù)據(jù)類型的數(shù)組也有屬性名,只不過(guò)屬性名是數(shù)字,我們把數(shù)字屬性名稱之為它的索引數(shù)組是以數(shù)字作為索引,索引從零開始,有一個(gè)屬性代表數(shù)組的長(zhǎng)度。

Array
數(shù)組也是對(duì)象數(shù)據(jù)類型的 typeof [] ->"object"

數(shù)組也有屬性名,只不過(guò)屬性名是數(shù)字,我們把數(shù)字屬性名稱之為它的索引:數(shù)組是以數(shù)字作為索引,索引從零開始,有一個(gè)length屬性代表數(shù)組的長(zhǎng)度。

類數(shù)組:類似于數(shù)組,但是不是數(shù)組
1、通過(guò)getElementsByTagName獲取的元素集合是類數(shù)組
2、函數(shù)中的實(shí)參集合arguments也是類數(shù)組
...

循環(huán)數(shù)組中的每一項(xiàng)

Array.prototype.aa = 100;

//=>FOR循環(huán)操作
for (var i = 0; i < ary.length; i++) {
    console.log(arr[i]);
}

//=>FOR IN循環(huán)操作
for (var key in arr) {
    //key:屬性名(數(shù)組中的屬性名是索引)
    console.log(arr[key]);
}

//=>FOR循環(huán)只能遍歷到數(shù)組私有的一些屬性,而FOR IN循環(huán)可以把一些自定義的公共屬性也能遍歷到
數(shù)組中的常用方法
數(shù)組中有很多常用方法  console.dir(Array.prototype)

1、方法的意義和作用
2、方法的形參
3、方法的返回值
4、通過(guò)此方法,原來(lái)的數(shù)組是否發(fā)生了改變

實(shí)現(xiàn)數(shù)組的增加、修改、刪除
var ary = [12,23,34];
push/unshift
//=>增加
/*
 * 1、push:向數(shù)組的末尾追加新內(nèi)容
 *   參數(shù):一到多個(gè),任何數(shù)據(jù)類型都可以,想要給數(shù)組末尾追加什么,直接傳遞到push方法中即可,傳遞多個(gè)用逗號(hào)隔開
 *   返回值:新增后數(shù)組的長(zhǎng)度
 *   原有數(shù)組改變了
 */ 

/*
 * 2、unshift:向數(shù)組開頭追加新內(nèi)容
 *   參數(shù):需要追加的內(nèi)容(可以是多個(gè)任何數(shù)據(jù)類型的值)
 *   返回值:新增后數(shù)組的長(zhǎng)度
 *   原來(lái)數(shù)組改變了
*/

/*
 * 3、把數(shù)組當(dāng)做一個(gè)普通的對(duì)象,使用對(duì)象鍵值對(duì)的操作,給其設(shè)置新的屬性(索引)
 * arr[arr.length]=xxx  向數(shù)組的末尾追加了新的內(nèi)容
*/

//=>刪除
/*
 * 1、pop:刪除數(shù)組最后一項(xiàng)
 *   參數(shù):無(wú)
 *   返回值:被刪除的那一項(xiàng)內(nèi)容
 *   原有數(shù)組改變了
*/

/*
 * 2、shift:刪除數(shù)組第一項(xiàng)
 *   參數(shù):無(wú)
 *   返回值:被刪除那一項(xiàng)的內(nèi)容
 *   原有數(shù)組改變了
 * 使用shift刪除第一項(xiàng)之后,后面每一項(xiàng)的索引都要向前進(jìn)一位(導(dǎo)致后面項(xiàng)的索引發(fā)生改變)
*/

/*
 * 3、把數(shù)組當(dāng)做普通的對(duì)象操作
 * delete刪除:`delete ary[索引]`刪除指定索引這一項(xiàng)(當(dāng)前項(xiàng)被刪除后,原有數(shù)組其它項(xiàng)的索引不會(huì)改變;當(dāng)前數(shù)組的length也不會(huì)改變;)
 * 
 * ary.length--:刪除數(shù)組最后一項(xiàng)
*/

//=>splice:數(shù)組中內(nèi)置的方法,可以實(shí)現(xiàn)數(shù)組的增加、修改、刪除
/*
 * splice實(shí)現(xiàn)刪除
 *   splice(n,m):從索引n開始刪除m個(gè)(m不寫是刪除到數(shù)組的末尾)
 *   返回值:被刪除的內(nèi)容(以一個(gè)新數(shù)組保存)
 *   原有數(shù)組改變了
 *   -> splice(0) 清空數(shù)組
 *   -> splice()  一項(xiàng)都不刪除,返回一個(gè)新的空數(shù)組
 *   -> splice(0,1) 刪除第一項(xiàng)
 *   -> splice(ary.length-1) 刪除最后一項(xiàng)
 *  
 * splice實(shí)現(xiàn)修改
 *  splice(n,m,x):在原有刪除的基礎(chǔ)上,用x代替刪除的內(nèi)容
 * 
 * splice實(shí)現(xiàn)增加
 *  splice(n,0,x):在修改的基礎(chǔ)上,我們一項(xiàng)都不刪除,把x插入到索引n的前面
 *  -> ary.splice(0,0,x) 向數(shù)組開頭追加新的內(nèi)容
 *  -> ary.splice(ary.length,0,x) 向數(shù)組末尾追加新元素
*/
數(shù)組的查詢
/*
 * slice:數(shù)組的查詢
 *  參數(shù):slice(n,m) 從索引n開始找到索引為m處(不包含m)
 *  返回值:把找到的部分以一個(gè)新數(shù)組返回
 *  原來(lái)的數(shù)組不變
 *   
 *  -> slice(n) 從索引n開始找到末尾
 *  -> slice(0) / slice() 數(shù)組克隆,克隆一份和原來(lái)數(shù)組一模一樣的新數(shù)組
 *  -> slice支持負(fù)數(shù)索引,如果傳遞的索引為負(fù)數(shù),瀏覽器解析的時(shí)候是按照 總長(zhǎng)度+負(fù)數(shù)索引 來(lái)處理的
 *  ...
*/
將兩個(gè)數(shù)組進(jìn)行拼接
/*
 * concat:將多個(gè)數(shù)組拼接在一起
 *  參數(shù):要拼接的內(nèi)容(把內(nèi)容放在原數(shù)組的后面),可以是一個(gè)數(shù)組,也可以是一些數(shù)據(jù)值
 *  返回:拼接后的新數(shù)組
 *  原有數(shù)組不變
 *   
 *  -> concat() 什么都沒(méi)有拼接,相當(dāng)于把原有數(shù)組克隆一份一模一樣的新數(shù)組出來(lái)
*/

把數(shù)組轉(zhuǎn)換為字符串的
/*
 * 1、toString:實(shí)現(xiàn)把數(shù)組轉(zhuǎn)化為字符串(轉(zhuǎn)換后的字符串以逗號(hào)分隔每一項(xiàng))
 *   參數(shù):無(wú)
 *   返回值:轉(zhuǎn)換的字符串
 *   原有數(shù)組不變
*/

/*
 * 2、join:把數(shù)組按照指定的分隔符轉(zhuǎn)換為字符串,和字符串中的split相對(duì)應(yīng)
 *   參數(shù):指定的鏈接符
 *   返回值:轉(zhuǎn)換后的字符串
 *   原有數(shù)組不變
*/

//=>已知數(shù)組中的每一項(xiàng)都是數(shù)字,想實(shí)現(xiàn)數(shù)組求和,我們?nèi)绾螌?shí)現(xiàn)?
//1、循環(huán)實(shí)現(xiàn)
var total=null;
for(var i=0;ievel:把字符串變?yōu)镴S表達(dá)式執(zhí)行
實(shí)現(xiàn)數(shù)組中每一項(xiàng)的排序和排列
/*
 * 1、reverse:把數(shù)組中的每一項(xiàng)倒過(guò)來(lái)排列
 *   參數(shù):無(wú)
 *   返回值:排序后的數(shù)組
 *   原有數(shù)組改變 
*/

/*
 * 2、sort:實(shí)現(xiàn)數(shù)組的排序
 *   參數(shù):無(wú)或者回調(diào)函數(shù)
 *   返回值:排序后的數(shù)組
 *   原有數(shù)組改變
 *   
 * 不傳遞參數(shù)的情況下:可以給10以內(nèi)的數(shù)字進(jìn)行升序排列,但是超過(guò)10的就無(wú)法處理了(多位數(shù)只識(shí)別第一位)
 *  
 * ary.sort(function(a,b){
 *     return a-b; //->升序
 *     return b-a; //->降序
 * });
*/
驗(yàn)證數(shù)組中是否包含某一項(xiàng)
/*
 * indexOf / lastIndexOf:獲取當(dāng)前項(xiàng)在數(shù)組中第一次或者最后一次出現(xiàn)位置的索引
 *   數(shù)組中的這兩個(gè)方法在IE6~8下不兼容
 *   字符串中的這兩個(gè)方法兼容所有的瀏覽器
 * 
 * 如果當(dāng)前數(shù)組中并沒(méi)有這一項(xiàng),返回的索引是-1,我們根據(jù)這一點(diǎn)可以驗(yàn)證數(shù)組中是否包含這一項(xiàng) 
*/
if(ary.indexOf(12)>-1){
    //->數(shù)組中包含12
}

Array.prototype.myIndexOf = function myIndexOf(value){
    var result = -1;
    for(var i=0;i
遍歷數(shù)組中每一項(xiàng)的方法
//=>以下方法在IE6~8下都不兼容

/*
 * forEach:遍歷數(shù)組中的每一項(xiàng)
*/
arr.forEach(function(value,index){
    //=>數(shù)組中有多少項(xiàng),當(dāng)前回調(diào)函數(shù)執(zhí)行多少次;每一次傳遞進(jìn)來(lái)的value就是當(dāng)前遍歷數(shù)組這一項(xiàng)的值,index就是遍歷這一項(xiàng)的索引
});

/*
 * map:遍歷數(shù)組中的每一項(xiàng),在forEach的基礎(chǔ)上,可以修改每一項(xiàng)的值
*/
arr.map(function(value,index){
    //=>數(shù)組中有多少項(xiàng),當(dāng)前回調(diào)函數(shù)執(zhí)行多少次;每一次傳遞進(jìn)來(lái)的value就是當(dāng)前遍歷數(shù)組這一項(xiàng)的值,index就是遍歷這一項(xiàng)的索引
    return xxx; //=>RETURN后面返回的結(jié)果就是把當(dāng)前遍歷的這一項(xiàng)修改為xxx
});

filter
find
reduce
every
...

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/93746.html

相關(guān)文章

  • 《廖雪峰JavaScript-快速入門》筆記

    摘要:文章內(nèi)容來(lái)源廖雪峰快速入門賦值注釋數(shù)據(jù)類型不區(qū)分整數(shù)和浮點(diǎn)數(shù),統(tǒng)一用表示。條件判斷使用來(lái)進(jìn)行條件判斷。最新的規(guī)范引入了新的數(shù)據(jù)類型,是一組鍵值對(duì)的結(jié)構(gòu),具有極快的查找速度。一個(gè)數(shù)組實(shí)際上也是一個(gè)對(duì)象,它的每個(gè)元素的索引被視為一個(gè)屬性。 文章內(nèi)容來(lái)源:廖雪峰JavaScript-快速入門 賦值 var x = 1; 注釋 // comment /* comment */ 數(shù)據(jù)類型 Num...

    caozhijian 評(píng)論0 收藏0
  • JavaScript函數(shù)式編程入門經(jīng)典

    摘要:函數(shù)式編程的定義函數(shù)是一段可以通過(guò)其名稱被調(diào)用的代碼。純函數(shù)大多數(shù)函數(shù)式編程的好處來(lái)自于編寫純函數(shù),純函數(shù)是對(duì)給定的輸入返回相同的輸出的函數(shù),并且純函數(shù)不應(yīng)依賴任何外部變量,也不應(yīng)改變?nèi)魏瓮獠孔兞俊? 一個(gè)持續(xù)更新的github筆記,鏈接地址:Front-End-Basics,可以watch,也可以star。 此篇文章的地址:JavaScript函數(shù)式編程入門經(jīng)典 正文開始 什么是函...

    silvertheo 評(píng)論0 收藏0
  • JavaScript-從入門到裝逼(一)

    摘要:變量用聲明聲明一個(gè)變量在中,變量也可以不做聲明作用域下章講解數(shù)據(jù)類型數(shù)字小數(shù)點(diǎn)字符串布爾類型或數(shù)組也可以和表示變量不含值。對(duì)象與對(duì)象相關(guān)聯(lián)的任何值函數(shù)返回的值數(shù)據(jù)類型我將在后面章節(jié)詳細(xì)講解。 作者吐槽 寫這篇文章為了鞏固自身基礎(chǔ),也希望能夠幫助到想學(xué)JS的朋友更容易入門。如有錯(cuò)誤點(diǎn),望朋友指點(diǎn)。謝謝! Js應(yīng)該寫在哪里 寫在中 由組成的代碼就是JavaScript代碼,瀏覽器識(shí)別是JS...

    CoXie 評(píng)論0 收藏0
  • 函數(shù)中的apply,call入門介紹

    摘要:函數(shù)中的入門牽扯到就要先說(shuō)一下它們和函數(shù)的淵源函數(shù)既是也是對(duì)象它和其它的對(duì)象沒(méi)有什么區(qū)別。但是我們可以通過(guò)和在函數(shù)調(diào)用時(shí)顯示指定所需的值。那就意味這任何函數(shù)可以被任何對(duì)象調(diào)用這才是和的方法的最終目的。否則會(huì)出現(xiàn)數(shù)組元素為的情況值值值值值 函數(shù)中的apply,call入門 ??牽扯到apply,call就要先說(shuō)一下它們和函數(shù)的淵源 Javascript函數(shù)既是也是對(duì)象 ??它和其它的...

    yankeys 評(píng)論0 收藏0
  • JavaScript面向?qū)ο?em>入門

    摘要:在中是沒(méi)有這樣的關(guān)鍵字的,我們需要這樣做定義在方法內(nèi)也就是內(nèi)部,也可以看作成構(gòu)造函數(shù)的變量,就是私有變量。移動(dòng)氣球我們需要用到定時(shí)器。 什么是JavaScript? 我們可以從幾個(gè)方面去說(shuō)JavaScript是什么: 基于對(duì)象 javaScript中內(nèi)置了許多對(duì)象供我們使用【String、Date、Array】等等 javaScript也允許我們自己自定義對(duì)象 事件驅(qū)動(dòng) ...

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

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

0條評(píng)論

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