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

資訊專欄INFORMATION COLUMN

js數(shù)組學(xué)習(xí)

lentoo / 2294人閱讀

摘要:將數(shù)組中每個(gè)元素轉(zhuǎn)化為字符串,并用值銜接起來(lái)作用銜接數(shù)組參數(shù)可以是一個(gè)元素或一個(gè)數(shù)組數(shù)組取的是元素返回值一個(gè)銜接的新數(shù)組。負(fù)數(shù)從數(shù)組尾部開(kāi)始計(jì)算,表示最后一位,表示倒數(shù)第二位返回值到之間的新數(shù)組。

本文是對(duì)數(shù)組的常規(guī)方法做一個(gè)記錄。

數(shù)組的基本方法除concat、slice外都會(huì)對(duì)原數(shù)組進(jìn)行修改

數(shù)組的創(chuàng)建
    var arr = new Array(12);// 創(chuàng)建一個(gè)長(zhǎng)度為12的數(shù)組,值為undefined
    var arr1 = new Array(1,2,3); 
    var arr2 = [1,2,3]; //arr1=arr2
length

數(shù)組的長(zhǎng)度可以讀取,也可設(shè)置

var arr = [1,2,3];
arr.length;  //3
arr.length=0; //[]
Array.indexOf("value",index)

作用:在數(shù)組中查找給定元素(從左往右找)
參數(shù):value-要查找的值;index-從第index位開(kāi)始查找;index省略從頭開(kāi)始搜索,負(fù)數(shù)代表相對(duì)數(shù)組末尾的偏移量
返回值:找到,返回第一個(gè)匹配元素的索引;沒(méi)有找到返回-1

    var arr=[1,2,3,4,2,3];
    arr.indexOf();//=>-1
    arr.indexOf(2,1);//=>1
    arr.indexOf(2,7);//=>-1
    arr.indexOf(5);//=>-1
    arr.indexOf(2,-2);//=>4
    arr.indexOf(2,-6);//=>1 負(fù)數(shù)超出范圍都找的1
    arr.indexOf(2,-11);//=>1 從第-5位往右找

查找數(shù)組中所有的x,并返回其下標(biāo)


function findAll(x,arr){
    var i=0;
    var results=[];
    while(arr.indexOf(x,i) != -1){
        results.push(arr.indexOf(x,i));
        i = arr.indexOf(x,i)+x.length;
    }
    return results;
}
Array.lastIndexOf("value",index)

作用:在數(shù)組中查找給定元素(從右往左找)
參數(shù):value-要查找的值;index-從第index位開(kāi)始查找;index省略從尾開(kāi)始搜索,負(fù)數(shù)代表相對(duì)數(shù)組末尾的偏移量
返回值:找到,返回第一個(gè)匹配元素的索引;沒(méi)有找到返回-1

    var arr=[1,2,3,4,2,3];
    arr.lastIndexOf();//=>-1
    arr.lastIndexOf(2,1);//=>1
    arr.lastIndexOf(2,0);//=>-1
    arr.lastIndexOf(2,7);//=>4 正數(shù)超出范圍都找的是4
    arr.lastIndexOf(2,-2);//=>4 從第4位往左找
    arr.lastIndexOf(2,-6);//=>-1 從第0位往左找
    arr.lastIndexOf(2,-11);//=>-1 從第-5位往左找
Array.join("value")

作用:將數(shù)組轉(zhuǎn)為字符串
參數(shù):value-數(shù)組元素間連接符;省略時(shí)默認(rèn)為(,)
返回值:一個(gè)字符串。將數(shù)組中每個(gè)元素轉(zhuǎn)化為字符串,并用value值銜接起來(lái)

    var arr=[1,2,3];
    arr.join();//=>"1,2,3"
    arr.join("");//=>"123"
    var arr1=new Array(3);
    arr1.join("-"); //=>"--"
Array.concat("value")

作用:銜接數(shù)組
參數(shù):value-可以是一個(gè)元素或一個(gè)數(shù)組(數(shù)組取的是元素)
返回值:一個(gè)銜接value的新數(shù)組。不會(huì)修改調(diào)用的數(shù)組

    var arr=[1,2,3];
    arr.concat(4,5);//=>[1,2,3,4,5]
    arr.concat([4,5]);//=>[1,2,3,4,5]
    arr.concat([4,[5,[6,7]]]);//=>[1,2,3,4,[5,[6,7]]]
Array.push()、Array.pop()、Array.shift()、Array.unshift()

作用: 1.添加元素: 返回新數(shù)組長(zhǎng)度

push:數(shù)組末尾添加元素;
unshift:數(shù)組開(kāi)頭添加元素;一次性插入

2.刪除元素: 返回刪除的數(shù)據(jù)

pop:刪除數(shù)組最后一個(gè)元素;
shift:刪除數(shù)組第一個(gè)元素;
    var arr=[1,2,3];
    arr.push([4,5]);//=>[1,2,3,[4,5]]  返回4
    arr.shift();//=>[2,3,[4,5]]  返回1
Array.slice(start,end)

作用:返回?cái)?shù)組一部分
參數(shù):start-開(kāi)始序號(hào),end-結(jié)束序號(hào)。end省略默認(rèn)到最后一位。負(fù)數(shù)從數(shù)組尾部開(kāi)始計(jì)算,-1表示最后一位,-2表示倒數(shù)第二位
返回值:start到end之間的新數(shù)組[start,end)。不會(huì)修改調(diào)用的數(shù)組

    var arr=[1,2,3,4,5];
    arr.slice(0,3);//=>[1,2,3]
    arr.slice(3);//=>[4]
    arr.slice(1,-1);//=>[2,3,4]
    arr.slice(-3,-2);//=>[3]
    arr.slice(-8,3);//=>[1,2,3]
    arr.slice(3,0);//=>[]  截取不到返回空數(shù)組,從小到大,不交換
Array.splice(start,deleteCount,value,...)

作用:添加、刪除和替換數(shù)組元素
參數(shù):start-數(shù)組元素序號(hào)

  deleteCount-要?jiǎng)h除元素的個(gè)數(shù)
  value-要插入數(shù)組中的0個(gè)或多個(gè)值

返回值:刪除元素返回包含刪除元素的新數(shù)組;添加或替換返回空數(shù)組

    var arr=[1,2,3,4,5,6,7,8];
    arr.splice(4);//=>返回[5,6,7,8]a為[1,2,3,4]
    arr.splice(1,0,2,3);//=>返回[] a為[1,2,3,2,3,4]
    arr.splice(1,1,5);//=>返回[2] a為[1,5,3,2,3,4]
Array.sort(orderfunc)

作用:對(duì)數(shù)組元素排序
參數(shù):可選函數(shù)。不帶參數(shù)按字符編碼排序

    arr.sort(function(a,b){
        return a-b; //從小到大
        //return b-a; 從大到小
       // return Math.random()-0.5; 隨機(jī)排序
    })
Array.reverse()

作用:顛倒數(shù)組元素,逆序

   var arr=[1,2,3];
   arr.reverse(); //[3,2,1]
Array.toString()

作用:將數(shù)組轉(zhuǎn)為字符串,與join不傳參數(shù)一樣
參數(shù):可選函數(shù)。不帶參數(shù)按字符編碼排序

   [1,2,3].toString(); //"1,2,3"
   [1,[2,"c"]].toString(); //"1,2,c"
ES5中數(shù)組方法

均不會(huì)改變?cè)瓟?shù)組

Array.forEach()

作用:遍歷數(shù)組,為每個(gè)元素調(diào)用指定函數(shù)
注意:forEach不能在所有元素傳遞給函數(shù)前終止遍歷

   var arr=[1,2,3]; 
   arr.forEach(function(item,index,arr){
        arr[index] = item+1;
   })
   arr=>[2,3,4]
Array.map()

作用:將數(shù)組每個(gè)元素傳遞給用指定函數(shù)
注意:傳遞給map的函數(shù)應(yīng)有返回值,不修改原數(shù)組,返回的是新數(shù)組

   var arr=[1,2,3]; 
   b=arr.map(function(item,index,arr){
        return x*x;
   })  //[1,4,9]
Array.filter()

作用:返回過(guò)濾后數(shù)組的一部分

    刪除數(shù)組中undefined和null
    a = a.filter(function(item){
        return item!==undefined && item!==null;
    })
Array.every()

作用:對(duì)數(shù)組元素應(yīng)用指定函數(shù)進(jìn)行檢測(cè)
返回值:所有元素均滿足條件,返回true;否則false
注意:every和some一旦能確認(rèn)返回什么值,就會(huì)停止遍歷

    var arr = [1,2,3]
    arr.every(function(item){
        return item<5;
    }) //true
Array.some()

作用:對(duì)數(shù)組元素應(yīng)用指定函數(shù)進(jìn)行檢測(cè)
返回值:有一個(gè)元素滿足條件,返回true
注意:空數(shù)組,調(diào)用every()返回true;調(diào)用some返回false

Array.reduce(fn,value)

作用:使用指定函數(shù)將數(shù)組進(jìn)行組合,返回一個(gè)值(從左往右)
參數(shù):fn-指定函數(shù),value-傳遞給函數(shù)的初值
一個(gè)參數(shù):

第一次的兩個(gè)值分別為數(shù)組的第一、二個(gè)元素,其結(jié)果作為第二次的第一個(gè)值

兩個(gè)參數(shù):

第一次的值為value和數(shù)組第一個(gè)元素,其結(jié)果作為第二次的第一個(gè)值

    var arr = [1,2,3,4,5]
    var sum = arr.reduce(function(prev,cur,index,arr){
        return prev+cur;
    },0)
    var max = arr.reduce(function(x,y){
    return (x>y)?x:y;
    })
Array.reduceRight(fn,value)

作用:使用指定函數(shù)將數(shù)組進(jìn)行組合,返回一個(gè)值(從右往左)

ES6對(duì)數(shù)組方法的擴(kuò)展()

參考http://es6.ruanyifeng.com/#do...

Array.form(arr,fn)

作用:將類數(shù)組對(duì)象和可遍歷對(duì)象轉(zhuǎn)為真正的數(shù)組。如nodeList、argument等
參數(shù):arr為類數(shù)組或集合,fn函數(shù)作用類似map方法
注意:只要部署了Iterator接口的數(shù)據(jù)結(jié)構(gòu),都能將其轉(zhuǎn)為數(shù)組。字符串和set結(jié)構(gòu)都可以轉(zhuǎn)為數(shù)組

   let arrLike={
    "0":"a",
    "1":"b",
    "2":"c",
    length:3
   }
   var arr1=[].slice.call(arrLike); //es5
   var arr2=Array.from(arrLike);
   Array.form([1,2,3],(x)=>x*x) //[1,4,9]
   Array.form("abc"); //["a","b","c"]
Array.of(value)

作用:將一組值轉(zhuǎn)為數(shù)組,彌補(bǔ)Array()因參數(shù)的個(gè)數(shù)不同結(jié)果不同的不足

  Array(3) //[,,,]  Array.of(3) //[3]
  Array() //[]  Array.of() //[]
Array.fill(value,start,end)

作用:使用給定的value,填充一個(gè)數(shù)組
參數(shù):value要填充的值,start-end從start到end進(jìn)行填充

 [1,2,3].fill(5); //[5,5,5]
 [1,2,3].fill(4,1,2); //[1,4,3]
數(shù)組檢測(cè)

使用typeOf可以完成對(duì)基本數(shù)據(jù)類型的檢測(cè),對(duì)數(shù)組的檢測(cè)可以使用以下方法:

1、Array.isArray([]) =>true

2、[] instanceOf Array =>true

instanceOf問(wèn)題:web瀏覽器可能右多個(gè)窗口或frame,每個(gè)窗口都有自己的JavaScript環(huán)境,有自己的全局對(duì)象。每個(gè)全局對(duì)象有自己的構(gòu)造函數(shù),因此一個(gè)窗體中的對(duì)象不可能是另一個(gè)窗口的構(gòu)造函數(shù)實(shí)例, 因此該方法存在一定的問(wèn)題

3、Object.prototype.toString.call([]) == "[object Array]"; =>true

call()和apply()都可以間接地調(diào)用函數(shù),并顯式地修改this值。任何函數(shù)都可以作為任何對(duì)象的方法來(lái)調(diào)用,哪怕這個(gè)函數(shù)不是那個(gè)對(duì)象的方法。如:

    Array.join = Array.join || function(a,sep){
        return Array.prototype.join.call(a,sep);
    }
    Array.prototype.join.call("abc","-"); //a-b-c

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

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

相關(guān)文章

  • 那些年,前端學(xué)習(xí)之路的疑難雜癥(三):數(shù)組和Date的一些梳理

    摘要:將指定的數(shù)字索引值轉(zhuǎn)換成字符串索引值變成,然后將其作為屬性名來(lái)用。返回一個(gè)由刪除元素組成的數(shù)組。該方法返回的數(shù)組元素是調(diào)用的數(shù)組的一個(gè)子集。使用的函數(shù)有四個(gè)參數(shù)初始值積累值數(shù)組元素元素索引數(shù)組本身。 前言 很多人在學(xué)習(xí)原生JS的過(guò)程中會(huì)遇到一些疑惑,比如在學(xué)習(xí)array時(shí),就很容易搞不清哪些方法會(huì)改變?cè)瓉?lái)數(shù)組,哪些方法不會(huì)改變?cè)瓉?lái)數(shù)組?再比如很多人會(huì)使用new Date()獲取時(shí)間,卻...

    xeblog 評(píng)論0 收藏0
  • JS學(xué)習(xí)第十天筆記 Array類型

    摘要:只有滿足才返回,否則返回。專門用于篩選出數(shù)組中符合函數(shù)判斷條件的元素組成的心數(shù)組。專門用于對(duì)原數(shù)組中每個(gè)元素執(zhí)行相同的函數(shù)對(duì)象規(guī)定的操作。并歸方法將數(shù)組從左向右迭代。 Array類型 數(shù)組的常見(jiàn)方法 檢測(cè)數(shù)組 如何確定當(dāng)前是一個(gè)數(shù)組,JS提供了以下幾種方式1.typeof無(wú)法檢測(cè)數(shù)組對(duì)象:typrof[]返回object2.instanceof:[]instanceof Array返回...

    Barrior 評(píng)論0 收藏0
  • JS】JavaScript數(shù)組以及數(shù)組API學(xué)習(xí)總結(jié)

    摘要:返回?cái)?shù)組內(nèi)容的字符串表示形式將數(shù)組中每個(gè)元素轉(zhuǎn)為字符串,并用逗號(hào)連接。拍照連接符將數(shù)組中每個(gè)元素轉(zhuǎn)為字符串,用自定義的連接符連接每個(gè)元素需要用變量借助。 關(guān)于數(shù)組篇的記錄,純自己總結(jié),會(huì)持續(xù)更新~ 原生js方法 1:創(chuàng)建數(shù)組的幾種方法: var arr = []; var arr = new Array(); var arr = [1,2]; var arr = new Arr...

    roundstones 評(píng)論0 收藏0
  • 前端學(xué)習(xí)記錄(JS篇)

    摘要:簡(jiǎn)介俗稱,的正式名稱是,是網(wǎng)景公司公司開(kāi)發(fā)的一種基于客戶端瀏覽器基于面向?qū)ο笫录?qū)動(dòng)式的網(wǎng)頁(yè)腳本語(yǔ)言。變量名不能使用關(guān)鍵字變量名對(duì)大小寫(xiě)敏感。 javascript簡(jiǎn)介 javascript俗稱js,js的正式名稱是ECMAScript,是網(wǎng)景公司Netscape公司開(kāi)發(fā)的一種基于客戶端瀏覽器、基于面向?qū)ο?、事件?qū)動(dòng)式的網(wǎng)頁(yè)腳本語(yǔ)言。主要用于:交互式操作,表單驗(yàn)證,網(wǎng)頁(yè)特效,web游...

    Keagan 評(píng)論0 收藏0
  • JS中ArrayAPI學(xué)習(xí)筆記

    摘要:如果該函數(shù)的返回值大于,表示第一個(gè)成員排在第二個(gè)成員后面其他情況下,都是第一個(gè)元素排在第二個(gè)元素前面。第三次執(zhí)行,為上一輪的返回值,為第四個(gè)成員。第四次執(zhí)行,為上一輪返回值,為第五個(gè)成員。 JS中ArrayAPI學(xué)習(xí)筆記 記博客,時(shí)?;仡?尤其是面試之先回顧阮一峰標(biāo)準(zhǔn)庫(kù)Array對(duì)象 1 一些標(biāo)準(zhǔn)庫(kù)回顧 showImg(https://segmentfault.com/img/remo...

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

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

0條評(píng)論

閱讀需要支付1元查看
<