青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

專職C++

不能停止的腳步

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

常用鏈接

留言簿(28)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

前面一篇,我們寫了數(shù)組的基礎(chǔ),在這里則會把主要的方法和應(yīng)用列出來. 

數(shù)組方法

檢測數(shù)組 Array.isArray

ECMAScript 5 新增了 Array.isArray() 方法。這個(gè)方法的目的是最終確定某 
個(gè)值到底是不是數(shù)組,而不管它是在哪個(gè)全局執(zhí)行環(huán)境中創(chuàng)建的。這個(gè)方法的用法如下。

  1. if (Array.isArray(value)){
  2. //對數(shù)組執(zhí)行某些操作
  3. }

位置方法 indexOf和lastIndexOf


  • indexOf(searchvalue,fromindex) 從數(shù)組的頭開始向后查找
  • indexOf和lastIndexOf(searchvalue,fromindex) 從數(shù)組的尾開始向前查找

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

  • searchvalue 要查找的項(xiàng)
  • fromindex (可選的)表示查找起點(diǎn)位置的索引 
    返回 
    要查找的項(xiàng)在數(shù)組中的位置,或者在沒找到的情況下返回-1
  1. var data = [2, 5, 7, 3, 5];
  2. console.log(data.indexOf(5, "x")); // 1 ("x"被忽略)
  3. console.log(data.indexOf(5, "3")); // 4 (從3號位開始搜索)
  4. console.log(data.indexOf(4)); // -1 (未找到)
  5. console.log(data.indexOf("5")); // -1 (未找到,因?yàn)? !== "5")

迭代方法

共有五個(gè)迭代方法every, filter, forEach, map, some 
每個(gè)方法的的參數(shù)是一個(gè)回調(diào)函數(shù)

迭代方法(function callback(item,index,array) {});

回調(diào)函數(shù)都是三個(gè)參數(shù)

  • item 數(shù)組的元素
  • index 元素在數(shù)組中的位置
  • array 數(shù)組對象本身 
    同時(shí),有必要的回調(diào)函數(shù)要返回truefalse

  • every :對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對每一項(xiàng)都返回 true ,則返回 true 。相當(dāng)于是每項(xiàng)做與操作
  • filter :對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回該函數(shù)會返回 true 的項(xiàng)組成的數(shù)組。
  • forEach :對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)。這個(gè)方法沒有返回值。
  • map :對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組。
  • some :對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對任一項(xiàng)返回 true ,則返回 true 。相當(dāng)于是每項(xiàng)做或操作

例如:

every

  1. let a = [1,2,3,99,34,33];
  2. let v1 = a.every((item,index,array)=>{
  3. return item > 2;
  4. });
  5. //v1的值為false 因?yàn)閍[0],a[1]不合條件
  6. let v2 = a.every((item,index,array)=>{
  7. return item > 0;
  8. });
  9. //v2的值為true

filter

  1. let a = [1,2,3,99,34,33];
  2. let v = a.filter((item,index,array)=>{
  3. return item > 2;
  4. });
  5. //v是過濾后的新數(shù)組 [3,99,34,33]

foreach

  1. a.forEach((item)=>{
  2. console.log(item);
  3. });
  4. //會依次打印出每個(gè)元素的值
  5. a.forEach((item,index)=>{
  6. console.log(index,item);
  7. });
  8. //會依次打印出每個(gè)元素的下標(biāo)和值

map

  1. let a = [1,2,3,99,34,33];
  2. let v = a.map((item,index,array)=>{
  3. return item * item;
  4. });
  5. //v是map后的新數(shù)組 [1,4,9,9801,1156,1089]

some

  1. let a = [1,2,3,99,34,33];
  2. let v1 = a.some((item,index,array)=>{
  3. return item > 2;
  4. });
  5. //v1的值為true 因?yàn)閍[2],a[3]等元素值>2
  6. let v2 = a.some((item,index,array)=>{
  7. return item > 100;
  8. });
  9. //v2的值為false ,因?yàn)闆]有元素值大于100

歸并方法


  • reduce 從左到右累加
  • reduceRight 從右到左累加

這兩個(gè)方法,都會遍歷所有數(shù)組元素 
參數(shù)是一個(gè)回調(diào)函數(shù)

歸并方法 (function callback(prev, cur, index, array){});

  • prev 前一個(gè)值
  • cur 當(dāng)前元素
  • index 該元素在數(shù)組中的位置
  • array 數(shù)組對象本身

    例子

  1. let a = [1,2,3,99,34,33];
  2. let s = a.reduce((pre,cur,index,array)=>{
  3. console.log(pre,cur,index);
  4. return pre+cur;
  5. });
  6. //1 2 1t REPLServer.<anonymous> (repl.js:538:10)
  7. //3 3 2t emitOne (events.js:101:20)
  8. //6 99 3 REPLServer.emit (events.js:188:7)
  9. //105 34 4
  10. //139 33 5

數(shù)組棧方法

數(shù)組可以像棧那樣使用 
push方法,表示在數(shù)組最后加入指定的元素,可以一次增加多個(gè)數(shù)組 
pop方法,表示將數(shù)組的最后一個(gè)刪除,并通過pop方法返回,如果沒有元素了,則返回undefined

  1. a.push(100);
  2. a.push(99);
  3. console.log(a.pop());
  4. console.log(a.pop());

結(jié)果輸出 
99 
100

隊(duì)列方法

數(shù)組可以像隊(duì)列那樣使用 
用push方法,在隊(duì)尾加元素 
用shift在隊(duì)頭取元素 
用unshift在隊(duì)頭推入元素

  1. let a=[];
  2. a.push(1,2,3);
  3. Console.log(a.shift());
  4. Console.log(a.shift());
  5. Console.log(a.shift());

然后顯示為1,2,3剛好和棧相反

  1. let a = [1,2,3];
  2. a.unshift(4);
  3. a.unshift(5,6,7);

結(jié)果a為[ 5, 6, 7, 4, 1, 2, 3 ]

反轉(zhuǎn)數(shù)組方法

用reverse方法,反轉(zhuǎn)數(shù)組 
如:

  1. let a = [1,2,3,4,5];
  2. a.reverse()

結(jié)果: 
[ 5, 4, 3, 2, 1 ]

排序

用sort可以對數(shù)組排序

  1. function compare(v1,v2) {
  2. return v1>v2;
  3. }
  4. // a.sort();默認(rèn)將元素用toString,再比較字符串排序
  5. let a=[2,22,222,1,11,111];
  6. let v1 = a.sort();
  7. //則v1=[1,11,111,2,22, 222]
  8. //**這是不是按數(shù)值大小來排序,是按字會串大小來的**
  9. //可以指定的比較方法a.sort(compare);
  10. //則結(jié)果如下:
  11. let v2 = a.sort(compare);
  12. //則v2 = [ 1, 2, 11, 22, 111, 222 ]

連接數(shù)組

用concat可以將一個(gè)或多數(shù)組連起來,并不會改變當(dāng)前數(shù)組本身

  1. a = [1,2,3];
  2. b = a.concat(99); //b=[1,2,3,99];
  3. B = a.concat(99,[4,5]); //b=[1,2,3,99,4,5];

基于原有數(shù)組創(chuàng)建新數(shù)組

用slice基于當(dāng)前數(shù)組中的一或多個(gè)項(xiàng)創(chuàng)建一個(gè)新數(shù)組,原數(shù)組不會變 
slice(開始下標(biāo),結(jié)束下標(biāo)) ; 并不包括結(jié)束下標(biāo)的那個(gè)元素

  1. let a = [1,2,3,4,5,6];
  2. b=a.slice(2,4); //b=[3,4];

強(qiáng)大的splice

這個(gè)方法恐怕要算是最強(qiáng)大的數(shù)組方法了 
splice的返回值,則操作后的元素組成的數(shù)組

刪除

可以刪除任意數(shù)量的元素,只需指定 2個(gè)參數(shù):

  • startIndex 開始刪除的位置
  • removeCount 要?jiǎng)h除的元素個(gè)數(shù)。 
    例如, a.splice(0,2) 會刪除數(shù)組中的前兩元素。
  1. let a = [1,2,3,4,5,6];
  2. let b = a.splice(1,2);
  3. //執(zhí)行后,結(jié)果是
  4. //a = [ 1, 4, 5, 6 ]
  5. //b = [ 2, 3 ]

插入

可以向指定位置插入任意數(shù)量的元素,只需提供 3個(gè)參數(shù):

  • 起始位置、
  • 0(要?jiǎng)h除的元素個(gè)數(shù),做為插入功能,這值必須為0)
  • 要插入的元素
  • 如果要插入多個(gè)元素, 
    還可以繼續(xù)提供參數(shù),表示是要插入的元素。 
    例如,
  1. let a = [1,2,3,4,5,6];
  2. let b = a.splice(1,0,91,92,93,94);
  3. //執(zhí)行后結(jié)果是
  4. //a = [ 1, 91, 92, 93, 94, 2, 3, 4, 5, 6 ]
  5. //b = [ ]

替換

可以向指定位置插入任意數(shù)量的元素,且同時(shí)刪除任意數(shù)量的元素,只需指定 3 個(gè)參數(shù):

  • 起始位置、
  • >0的值(要?jiǎng)h除的元素個(gè)數(shù),做為替換功能,這值必須大于0)
  • 要插入的元素
  • 如果要插入多個(gè)元素, 
    還可以繼續(xù)提供參數(shù),表示是要插入的元素。
  1. let a = [1,2,3,4,5,6];
  2. let b = a.splice(1,2,91,92,93,94);
  3. //執(zhí)行后結(jié)果是
  4. //a = [ 1, 91, 92, 93, 94, 4, 5, 6 ]
  5. //b = [ 2, 3 ]

最后

對于迭代方法和歸并方法只是一個(gè)簡化代碼的作用,可能這些方法功能非常見,所以干脆默認(rèn)提從了這兩組方法。對于js的數(shù)組,使用起來非常方法,相比c/c++真是無與倫比…。在C++11標(biāo)準(zhǔn)后,也可以同樣提供一個(gè)強(qiáng)大的動態(tài)數(shù)組。但是js的數(shù)組,可以存放任何元素,這個(gè)是C++不能比的,雖然可以實(shí)現(xiàn),但是代價(jià)就有點(diǎn)大了。相對來說,現(xiàn)在版本的java和C#,則可以。因?yàn)閖ava所有的都是Object…

posted on 2017-03-07 18:03 冬瓜 閱讀(1497) 評論(0)  編輯 收藏 引用 所屬分類: javascript
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品影视天天线| 亚洲日本免费| 国产九区一区在线| 欧美精品高清视频| 欧美久久婷婷综合色| 欧美第十八页| 久久综合九色综合网站| 免费在线亚洲欧美| 欧美激情中文字幕在线| 亚洲精品一区二区网址| 一本久道久久综合婷婷鲸鱼| 99精品久久久| 亚洲欧美日韩国产成人精品影院| 欧美一级一区| 亚洲国产天堂久久综合| 日韩一级黄色大片| 亚洲永久精品大片| 久久婷婷国产综合国色天香| 欧美激情1区2区| 欧美三级网址| 激情av一区| 99在线精品视频| 羞羞色国产精品| 欧美成人综合一区| 在线视频欧美精品| 久久久久久久久久久成人| 欧美精品成人| 国产香蕉久久精品综合网| 亚洲精品护士| 久久久久久久综合日本| 亚洲人成精品久久久久| 欧美一区二区视频在线观看2020| 美女图片一区二区| 国产精品一区在线观看| 亚洲免费观看| 免费久久99精品国产自在现线| 亚洲视频在线一区| 女女同性精品视频| 韩国在线一区| 欧美一区二区三区精品电影| 91久久久精品| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品性做久久久久久| 亚洲国产一区二区在线| 亚洲一二三四区| 欧美日韩高清在线一区| 亚洲国产精品久久人人爱蜜臀| 久久超碰97中文字幕| 午夜一级在线看亚洲| 亚洲国产国产亚洲一二三| 欧美在线综合视频| 国产精品一区二区男女羞羞无遮挡| 日韩视频免费观看高清在线视频| 玖玖国产精品视频| 欧美一区二区精品| 国产日韩欧美另类| 欧美亚洲免费在线| 亚洲免费在线观看视频| 国产精品99免费看 | 午夜欧美理论片| 亚洲人成在线观看一区二区| 久久综合五月天婷婷伊人| 国语自产精品视频在线看一大j8 | 在线精品国产成人综合| 久久精品1区| 亚洲欧美日韩人成在线播放| 国产精品视区| 久久成人综合网| 午夜精品免费在线| 国产日韩欧美在线| 久久久人成影片一区二区三区| 欧美一级夜夜爽| 国精品一区二区三区| 久久人人97超碰人人澡爱香蕉| 亚洲欧美国产日韩天堂区| 国产精品久久久久久久久久免费看 | 亚洲淫片在线视频| 亚洲一区二区三区激情| 国产私拍一区| 欧美成人久久| 欧美日韩国产成人高清视频| 亚洲欧美日韩直播| 欧美成人精品1314www| 久久人人爽人人爽| 亚洲精品一区二| 中国女人久久久| 国模叶桐国产精品一区| 欧美高清hd18日本| 欧美日韩中文在线观看| 欧美亚洲综合另类| 理论片一区二区在线| 亚洲一区视频在线| 久久高清国产| aa日韩免费精品视频一| 亚洲女爱视频在线| 亚洲欧洲精品一区二区三区 | 欧美风情在线| 西西人体一区二区| 欧美jizzhd精品欧美喷水| 亚洲视频网站在线观看| 欧美专区一区二区三区| 99re热这里只有精品免费视频| 亚洲欧美精品一区| 亚洲另类一区二区| 欧美在线电影| 亚洲影视在线| 欧美成人免费播放| 久久久噜噜噜久久狠狠50岁| 欧美日韩成人在线视频| 久久在线免费观看| 国产精品日韩欧美一区二区| 亚洲国产精品久久人人爱蜜臀| 亚洲小视频在线观看| 亚洲精品中文字幕女同| 欧美亚洲一区| 亚洲一区3d动漫同人无遮挡| 久热精品视频在线观看一区| 欧美一级片在线播放| 欧美日韩在线第一页| 欧美成人在线免费观看| 国产日韩欧美精品一区| 中文一区字幕| 一区二区三区国产精品| 免费一级欧美在线大片| 久久久久国产一区二区| 国产精品视频精品视频| 亚洲精选视频在线| 亚洲九九爱视频| 免费国产自线拍一欧美视频| 久久综合九色九九| 国产日韩一区在线| 亚洲欧美成人综合| 亚洲女性裸体视频| 欧美亚州韩日在线看免费版国语版| 亚洲日本一区二区| 日韩亚洲在线| 欧美国产在线观看| 亚洲欧洲日本专区| 日韩视频免费| 欧美日韩免费网站| 一本一本久久a久久精品牛牛影视| 日韩一区二区精品视频| 欧美日韩福利| 一区二区精品在线观看| 亚洲综合第一| 国产精品网站在线观看| 亚洲欧美成人精品| 欧美综合二区| 国内精品写真在线观看| 久久国产精品一区二区三区| 久久亚洲一区| 亚洲日本无吗高清不卡| 欧美电影电视剧在线观看| 亚洲日本欧美日韩高观看| 一区二区毛片| 国产精品视频内| 久久久国产精品亚洲一区 | 亚洲欧美日韩系列| 久久香蕉国产线看观看av| 在线国产日韩| 欧美日韩国产探花| 午夜精品理论片| 欧美粗暴jizz性欧美20| 99这里只有精品| 国产精品久久久久99| 久久福利资源站| 亚洲国产清纯| 欧美亚洲一区二区在线观看| 国产一级精品aaaaa看| 毛片av中文字幕一区二区| 亚洲靠逼com| 久久久精品2019中文字幕神马| 亚洲黄一区二区三区| 国产精品成人一区二区艾草| 久久精品综合网| 99视频超级精品| 蜜臀久久99精品久久久久久9| 国产精品女人网站| 久久久久久久波多野高潮日日| 亚洲欧洲三级| 久久频这里精品99香蕉| 99视频精品全部免费在线| 国产亚洲精品久| 欧美日韩国产欧美日美国产精品| 欧美一区午夜视频在线观看| 亚洲美女中文字幕| 免费亚洲视频| 久久se精品一区二区| 一区二区三区日韩欧美| 伊人狠狠色丁香综合尤物| 国产精品久久久久一区二区三区共| 久久一区亚洲| 欧美在线观看一二区| 一区二区三区黄色| 亚洲激情欧美| 欧美成人蜜桃| 欧美jjzz| 你懂的国产精品| 久久午夜精品| 久久激情婷婷|