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

資訊專欄INFORMATION COLUMN

詳解JavaScript數(shù)組(一)

zhongmeizhi / 864人閱讀

摘要:數(shù)組不接受參數(shù),從數(shù)組末尾移除最后一項(xiàng)返回?cái)?shù)組最后一項(xiàng)。隊(duì)列方法先進(jìn)先出移除數(shù)組中的第一個(gè)項(xiàng),并返回該項(xiàng)。接收任意個(gè)參數(shù),在數(shù)組前添加任意個(gè)項(xiàng)并返回新數(shù)組的長度。基于當(dāng)前數(shù)組中的一或多個(gè)項(xiàng)創(chuàng)建新數(shù)組,不會(huì)影響原來數(shù)組。

一. 定義方法

有兩種方式可以定義一個(gè)數(shù)組,

構(gòu)造函數(shù)法

使用Array構(gòu)造函數(shù)創(chuàng)建數(shù)組,在使用Array構(gòu)造函數(shù)時(shí)可以省略new操作符。

 var arr = Array();
 var arr = new Array(); // 創(chuàng)建一個(gè)空數(shù)組

 var arr = Array(20);
 var arr = new Array(10); // 創(chuàng)建一個(gè) length 長為 10 的數(shù)組

 var arr = Array("1", "2", "3");
 var arr = new Array("1", "2", "3"); // 創(chuàng)建一個(gè)包含該三項(xiàng)的數(shù)組
對(duì)象字面量表示法
var arr=["1", "2", "3"];

注意:數(shù)組最多能夠包含4294967295個(gè)項(xiàng)

二. 數(shù)組檢測(cè)

這篇文章有很詳細(xì)的說明。《在JavaScript中,如何判斷數(shù)組是數(shù)組?》

三. 數(shù)組方法 1.轉(zhuǎn)換方法

所有對(duì)象都具有toString()toLocaleString()valueOf() 方法;要注意它們之間的區(qū)別

var a=[1,2];
console.log(a.toString()); 
console.log(a.toLocaleString());//1,2
console.log(a.valueOf()); //[1, 2]

valueOf:返回?cái)?shù)組本身

toString():把數(shù)組轉(zhuǎn)換為字符串,并返回結(jié)果,每一項(xiàng)以逗號(hào)分割

toLocalString():結(jié)果與toString()返回的結(jié)果相同,但是調(diào)用的是toLocalString方法。

LocaleString()會(huì)根據(jù)你機(jī)器的本地環(huán)境來返回字符串,而toString()保持著統(tǒng)一的值。

var number = 1337;
var date = new Date();
var myArr = [number, date, "foo"];
var str = myArr.toLocaleString(); 
console.log(str); //1337,2016/8/25 下午3:06:46,foo

var number = 1337;
var date = new Date();
var myArr = [number, date, "foo"];
var str = myArr.LocaleString()會(huì)根據(jù)你機(jī)器的本地環(huán)境來返回字符串; 
console.log(str); //1337,Thu Aug 25 2016 15:07:43 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間),foo

使用join()方法,可以設(shè)置分隔符

String.join("|");

備注:需要說明一下alert()方法接收字符串參數(shù),在后臺(tái)調(diào)用toString()方法,但對(duì)于LocaleString()會(huì)調(diào)用LocaleString()方法。

2.棧方法

棧(LIFO,后進(jìn)先出)

a.push()

接受任意數(shù)量的參數(shù),逐個(gè)推入數(shù)組末尾,并返回修改后數(shù)組的長度。

var a=[1,2];
var b=a.push(3,4);
console.log(b); //4 數(shù)組[1,2,3,4]
b.pop()

不接受參數(shù),從數(shù)組末尾移除最后一項(xiàng),返回?cái)?shù)組最后一項(xiàng)。

var a=[1,2];
var b=a.pop();
console.log(b); //2
3.隊(duì)列方法

LIFO(先進(jìn)先出)

a.shift()

移除數(shù)組中的第一個(gè)項(xiàng),并返回該項(xiàng)。

var a=[1,2];
var b=a.shift();
console.log(b); //1
b.unshift()

unshift() 接收任意個(gè)參數(shù),在數(shù)組前添加任意個(gè)項(xiàng)并返回新數(shù)組的長度。備注:IE7及以下返回undefined。

var a=[1,2];
var b=a.unshift(3,4);
console.log(b); //4, 數(shù)組為[3,4,1,2]
4.重排序方法 a. sort()

使用時(shí)每個(gè)數(shù)組項(xiàng)調(diào)用自身toString()方法轉(zhuǎn)為字符串,再按字符編碼升序(非數(shù)值大小)排列數(shù)組項(xiàng),因此會(huì)出現(xiàn)一種尷尬的事情:

var a=[1,2,3,10,5];
a.sort(); //[1, 10, 2, 3, 5],字符編碼排序,10排在1后面

這時(shí)我們可以傳入一個(gè)比較函數(shù)。

function compare(a,b){
  if(ab){
      return 1;
    }else{
      return 0;
    }
}
var a=[1,2,3,10,5];
a.sort(compare); //[1, 2, 3, 5, 10]

對(duì)于數(shù)值類型或通過valueOf()方法返回?cái)?shù)值類型的對(duì)象數(shù)組項(xiàng),可以使用下面這個(gè)函數(shù):

function compare(a,b){
  return a-b;  
}
b.reverse()

反轉(zhuǎn)數(shù)組。

var a=[1,2,3,10,5];
a.reverse(); //[5, 10, 3, 2, 1]
5.操作方法 a.concat()

合并數(shù)組,傳入數(shù)組或者參數(shù),不會(huì)影響原來的數(shù)組。

var a=[1,2,3,4,5];
var a1=[6,7]
var b=a.concat();
var c=a.concat(a1);
var d=a.concat(a1,8,9);
console.log(a);//[1,2,3,4,5]
console.log(b);//[1,2,3,4,5]
console.log(c);//[1,2,3,4,5,6,7]
console.log(d);//[1,2,3,4,5,6,7,8,9]
b.slice()

基于當(dāng)前數(shù)組中的一或多個(gè)項(xiàng)創(chuàng)建新數(shù)組,不會(huì)影響原來數(shù)組。

無參數(shù):返回原數(shù)組

一個(gè)參數(shù):返回從該參數(shù)指定位置開始到數(shù)組末尾的所有項(xiàng)

兩個(gè)參數(shù):返回起始和結(jié)束之間的項(xiàng)

var a=[1,2,3,4,5];
var b=a.slice();
var c=a.slice(1);
var d=d.slice(1,4);
console.log(a);//[1,2,3,4,5]
console.log(b);//[1,2,3,4,5]
console.log(c);//[2,3,4,5]
console.log(d);//[2,3,4]
c.splice()

可以刪除、插入、替換;返回刪除的項(xiàng)組成的數(shù)組,對(duì)原數(shù)組造成影響
刪除:指定2個(gè)參數(shù),要?jiǎng)h除的第一項(xiàng)的位置和要?jiǎng)h除的項(xiàng)數(shù)

var a=[1,2,3,4,5];
var b=a.splice(3,2); //a變?yōu)閇1, 2, 3]

插入:提供3個(gè)參數(shù),起始位置、0、要插入的項(xiàng)

var a=[1,2,3,4,5];
var b=a.splice(3,0,2); //a變?yōu)閇1, 2, 3, 2, 4, 5]

替換:指定3個(gè)參數(shù),起始位置、要?jiǎng)h除的項(xiàng)數(shù)、要插入的項(xiàng)數(shù)(可多項(xiàng))

var a=[1,2,3,4,5];
var b=a.splice(3,1,2); //a變?yōu)閇1, 2, 3, 2, 5]
6.位置查找

indexOf()lastIndexOf(),接收兩個(gè)參數(shù):要查找的項(xiàng)和(可選的)表示起點(diǎn)位置的索引,都返回要查找的項(xiàng)在數(shù)組中的位置。

7.迭代方法

every():對(duì)數(shù)組的每一項(xiàng)運(yùn)行給定的函數(shù),如果該函數(shù)對(duì)每一項(xiàng)運(yùn)行都返回 true,則返回 true,對(duì)原函數(shù)無影響

some():對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定的函數(shù),如果該函數(shù)對(duì)任一項(xiàng)返回 true,則返回 true,對(duì)原函數(shù)無影響

filter():對(duì)數(shù)組的每一項(xiàng)運(yùn)行給定函數(shù),返回該函數(shù)會(huì)返回true的項(xiàng)組成的數(shù)組

forEach():對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),無返回值

map():對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組

8.縮小方法

reduce()和reduceRight()
傳入四個(gè)參數(shù):前一個(gè)值、當(dāng)前值、項(xiàng)的索引、數(shù)組對(duì)象本身。這個(gè)函數(shù)返回的任何值都會(huì)作為第一個(gè)參數(shù)自動(dòng)傳給下一項(xiàng),第一次迭代發(fā)生在數(shù)組的第二項(xiàng)上。

var numbers = [1, 2, 3, 4, 5];
var sum= numbers.reduce(function (pre, cur, index, arr) {
  return pre + cur;
})
alert(sum); // 15
四.參考資料

《JavaScript高級(jí)程序設(shè)計(jì)》

《JavaScript權(quán)威指南》

在JavaScript中,如何判斷數(shù)組是數(shù)組?

Object.prototype.toLocaleString()

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

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

相關(guān)文章

  • 【連載】前端個(gè)人文章整理-從基礎(chǔ)到入門

    摘要:個(gè)人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現(xiàn)在已經(jīng)一年的時(shí)間了,由于工作比較忙,更新緩慢,后面還是會(huì)繼更新,現(xiàn)將已經(jīng)寫好的文章整理一個(gè)目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個(gè)人前端文章整理 從最開始萌生寫文章的想法,到著手...

    madthumb 評(píng)論0 收藏0
  • 詳解js面向?qū)ο缶幊?/b>

    摘要:看下面一個(gè)例子優(yōu)點(diǎn)使用構(gòu)造器函數(shù)的好處在于,它可以在創(chuàng)建對(duì)象時(shí)接收一些參數(shù)。按照慣例,構(gòu)造函數(shù)的函數(shù)名應(yīng)始終以一個(gè)大寫字母開頭,以區(qū)分普通函數(shù)。返回該對(duì)象的源代碼。使您有能力向?qū)ο筇砑訉傩院头椒ā? 基本概念 ECMA關(guān)于對(duì)象的定義是:無序?qū)傩缘募希鋵傩钥梢园局怠?duì)象或者函數(shù)。對(duì)象的每個(gè)屬性或方法都有一個(gè)名字,而每個(gè)名字都映射到一個(gè)值。 類 在現(xiàn)實(shí)生活中,相似的對(duì)象之間往往都有...

    lolomaco 評(píng)論0 收藏0
  • JavaScript 特殊對(duì)象 Array-Like Objects 詳解

    摘要:很簡單,不是數(shù)組,但是有屬性,且屬性值為非負(fù)類型即可。至于屬性的值,給出了一個(gè)上限值,其實(shí)是感謝同學(xué)指出,因?yàn)檫@是中能精確表示的最大數(shù)字。如何將函數(shù)的實(shí)際參數(shù)轉(zhuǎn)換成數(shù)組 這篇文章拖了有兩周,今天來跟大家聊聊 JavaScript 中一類特殊的對(duì)象 -> Array-Like Objects。 (本文節(jié)選自 underscore 源碼解讀系列文章,完整版請(qǐng)關(guān)注 https://githu...

    zhaofeihao 評(píng)論0 收藏0
  • javascript reduce詳解及應(yīng)用

    摘要:循環(huán)數(shù)組每一項(xiàng)數(shù)組下標(biāo)當(dāng)前調(diào)用數(shù)組本身可選初始值,作為回調(diào)函數(shù)第一個(gè)參數(shù)的默認(rèn)值,也是每次回調(diào)的返回值,見代碼首頁問題轉(zhuǎn)化為數(shù)組首頁問題轉(zhuǎn)化后效果這個(gè)栗子來自配置路由時(shí)遇到的,當(dāng)時(shí)也是優(yōu)化了好幾個(gè)版本。 reduce callback(一個(gè)在數(shù)組中每一項(xiàng)上調(diào)用的函數(shù),接受四個(gè)參數(shù):)previousValue(上一次調(diào)用回調(diào)函數(shù)時(shí)的返回值,或者初始值)currentValue(當(dāng)前正...

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

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

0條評(píng)論

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