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

資訊專欄INFORMATION COLUMN

JavaScript數(shù)組(上)

Harpsichord1207 / 1246人閱讀

摘要:可以模仿棧和隊(duì)的進(jìn)入方式隊(duì)先進(jìn)先出隊(duì)后進(jìn)后出棧后進(jìn)先出棧先進(jìn)后出將數(shù)組以特定字符串連接,并返回字符串,默認(rèn)以逗號(hào)連接。如數(shù)組成員為空位,或這三者將以空串代替。改變?cè)瓟?shù)組排列方式會(huì)改變?cè)瓟?shù)組,進(jìn)行升序和降序。

數(shù)組篇 定義方式

通過(guò)構(gòu)造函數(shù),new一個(gè)array,可以填寫參數(shù),一般除數(shù)字外不建議填

let arr = new Array();
let arr1 = new Array(3);  //代表length為3,鍵值都是空位
0 in arr1;                //false,因?yàn)槭强瘴?,所以不存在索引,?shù)組會(huì)忽略尾部逗號(hào)

通過(guò)字面量定義

let arr = [1,2,3,4,5,56]
數(shù)組類型判定

typeof,不建議,最客觀也只返回object

let arr = [1,2];
typeof arr        //object

instanceof,不是最佳,原因是instanceof的原理是通過(guò)原型鏈判斷兩邊是否相等,但是在多框架下,a框架下的數(shù)組原型在b框架下就不一定了

arr instanceof Array;    //true
a instanceof b;     
//a.__proto__.proto__.... === b.prototype;a通常為對(duì)象,b為構(gòu)造函數(shù)

Array.isArray(),能解決第二種的問(wèn)題

Array.isArray(arr);     //true
數(shù)組屬性-length

增加數(shù)組長(zhǎng)度

let arr = [1,2,3];
arr.length = 4;
3 in arr;            //false
arr[3] = undefined;  //能增加length值,鍵值為undefined
3 in arr;            //true,

減少數(shù)組長(zhǎng)度

let arr = [1,2,3];
arr.length = 2;
console.log(arr[2]);    //undefined
arr.length = 0;        //最簡(jiǎn)單的清空方式,[]
數(shù)組方法

valueof(),toString(),通常用于數(shù)組對(duì)象轉(zhuǎn)換成別的數(shù)據(jù)類型,arr.valueof().toString()

push,pop,shift,unshift,4種方法都能改變?cè)瓟?shù)組,前兩個(gè)速度快,因?yàn)闄z索位置是尾部,后兩者是首部。可以模仿棧和隊(duì)的進(jìn)入方式:

隊(duì)先進(jìn)先出:

let arr = [];
arr.push(1);
arr.push(2);   //[1,2]
arr.shift()    //[2]

隊(duì)后進(jìn)后出:

let arr = [];
arr.unshift(1);
arr.unshift(2);   //[2,1]
arr.pop();        //[2]

棧后進(jìn)先出:

let arr = [];
arr.unshift(1);
arr.unshift(2);     //[2,1]
arr.shift();        //[1]

棧先進(jìn)后出:

let arr = [];
arr.push(1);
arr.push(2);         //[1,2]
arr.pop();           //[1]

join(),將數(shù)組以特定字符串連接,并返回字符串,默認(rèn)以逗號(hào)連接。如數(shù)組成員為空位,undefined或null,這三者將以空串代替。

let arr = [,undefined,null];
arr.join(";");   //;;
let arr1 = [1,,2];
arr1.join(".");  //1..2

concat(),將括號(hào)內(nèi)參數(shù)與原數(shù)組進(jìn)行拼接,返回新數(shù)組,原數(shù)組不變,參數(shù)類型不固定個(gè)數(shù)不固定。是淺拷貝,如參數(shù)為對(duì)象拷貝的是索引。

let arr = [1];
let obj = {a: 2};
let new_arr = arr.concat("123",obj); 
obj.a = 3;
console.log(new_arr);         //[1, "123", {a: 3}]

sort(), reverse(),改變?cè)瓟?shù)組排列方式(會(huì)改變?cè)瓟?shù)組),進(jìn)行升序和降序。它是先將元素轉(zhuǎn)為字符串,按首個(gè)字符的u碼進(jìn)行排列,這就導(dǎo)致排列出錯(cuò)。sort()可以添加傳入一個(gè)函數(shù)作為參數(shù),將排序進(jìn)行改進(jìn)

let arr = [1, 2, 12, 3, 4];
arr.sort();             //[1, 12, 2, 3, 4]
let arr = [1, 2, 12, 3, 4];
arr.sort(function (a, b) {
    return a - b;     //<0,在前;>0,在后;=0不變;
});
console.log(arr);    //[1, 2, 3, 4, 12],

slice()與splice(),
slice(start, end),類似切片截取,返回截取的新數(shù)組,原數(shù)組不變,兩個(gè)參數(shù)前閉后開(kāi),是淺拷貝
splice(start, count, addElement1, addElement2, ...),從start開(kāi)始刪除,數(shù)量為count,接著添加后面的元素; 若填寫一個(gè)參數(shù)則 count默認(rèn)length-arg-1,即刪到末尾;返回被刪除的數(shù)組,原數(shù)組改變

let arr = [1, 2, 3, 4, 5];
arr.slice();             //[1, 2, 3, 4, 5]
arr.slice(1, -1);        //[2, 3, 4]
arr.slice(0, 5);         //[1, 2, 3, 4, 5]  
arr.slice(2, 1);         //error, 前者不能大于后者(同+-符號(hào)) 
let arr = [1, 2, 3, 4];
let del = arr.splice(1, 3, "345", 67);
console.log(arr);                //[1, "345", 67]
console.log(del);                //[2, 3, 4]
let arr1 = [1, 2, 3, 4, 5];
arr1.splice(1);
console.log(arr1);               //[1]

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

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

相關(guān)文章

  • Array的javascript數(shù)據(jù)結(jié)構(gòu)描述

    摘要:幾乎所有的編程語(yǔ)言都有類似的數(shù)據(jù)結(jié)構(gòu)。然而的數(shù)組卻略有不同。沒(méi)有定義中說(shuō)的那樣的數(shù)據(jù)結(jié)構(gòu),作為替代。元素通過(guò)指定的分隔符進(jìn)行分隔。返回該對(duì)象的源代碼。把數(shù)組轉(zhuǎn)換為本地?cái)?shù)組,并返回結(jié)果。 寫在前面的話: 經(jīng)??吹郊夹g(shù)博客上寫的內(nèi)容很詳細(xì),對(duì)于一個(gè)問(wèn)題,大家的博客內(nèi)容似乎都是一樣的。不難發(fā)現(xiàn)這些技術(shù)博客已經(jīng)成為各路教程的匯總地,而教程一般都是參考國(guó)外博客翻譯或者直接在經(jīng)典的書籍上大片抄錄。...

    iOS122 評(píng)論0 收藏0
  • JavaScript專題系列文章

    摘要:專題系列共計(jì)篇,主要研究日常開(kāi)發(fā)中一些功能點(diǎn)的實(shí)現(xiàn),比如防抖節(jié)流去重類型判斷拷貝最值扁平柯里遞歸亂序排序等,特點(diǎn)是研究專題之函數(shù)組合專題系列第十六篇,講解函數(shù)組合,并且使用柯里化和函數(shù)組合實(shí)現(xiàn)模式需求我們需要寫一個(gè)函數(shù),輸入,返回。 JavaScript 專題之從零實(shí)現(xiàn) jQuery 的 extend JavaScritp 專題系列第七篇,講解如何從零實(shí)現(xiàn)一個(gè) jQuery 的 ext...

    Maxiye 評(píng)論0 收藏0
  • task0002(一)- JavaScript數(shù)據(jù)類型及語(yǔ)言基礎(chǔ)

    摘要:不過(guò)讓流行起來(lái)的原因應(yīng)該是是目前所有主流瀏覽器上唯一支持的腳本語(yǔ)言。經(jīng)過(guò)測(cè)試,數(shù)字字符串布爾日期可以直接賦值,修改不會(huì)產(chǎn)生影響。再考慮對(duì)象類型為或者的情況。對(duì)于結(jié)果聲明其類型。判斷對(duì)象的類型是還是,結(jié)果類型更改。 轉(zhuǎn)載自我的個(gè)人博客 歡迎大家批評(píng)指正 1. 第一個(gè)頁(yè)面交互 這里最需要學(xué)習(xí)的老師的代碼中,每一部分功能都由函數(shù)控制,沒(méi)有創(chuàng)建一個(gè)全部變量。且最后有一個(gè)函數(shù)來(lái)控制執(zhí)行代碼...

    elarity 評(píng)論0 收藏0
  • JavaScript 是如何工作的:JavaScript 的內(nèi)存模型

    摘要:調(diào)用堆棧是存放原始數(shù)據(jù)類型的地方除了函數(shù)調(diào)用之外。上一節(jié)中聲明變量后調(diào)用堆棧的粗略表示如下。解釋改變的正確方法是更改內(nèi)存地址。在聲明時(shí),將在調(diào)用堆棧上分配內(nèi)存地址,該值是在堆上分配的內(nèi)存地址。 這是專門探索 JavaScript 及其所構(gòu)建的組件的系列文章的第 21 篇。 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客,一年百來(lái)篇優(yōu)質(zhì)文章等著你! 如果你錯(cuò)過(guò)了前面的章節(jié),可以在這里找到它們:...

    baoxl 評(píng)論0 收藏0
  • JavaScript學(xué)習(xí)總結(jié)(二)數(shù)組和對(duì)象部分

    摘要:屬性是一個(gè)值或一組值以數(shù)組或?qū)ο蟮男问剑菍?duì)象的成員??梢允褂脙?nèi)置構(gòu)造函數(shù)和創(chuàng)建包裝對(duì)象。因此下面的代碼將會(huì)使人很迷惑結(jié)果結(jié)果,此數(shù)組長(zhǎng)度為應(yīng)該盡量避免使用數(shù)組構(gòu)造函數(shù)創(chuàng)建新數(shù)組。給數(shù)組對(duì)象添加返回?cái)?shù)組中最大元素值的方法。 對(duì)象部分 Object類型 Object 是一個(gè)無(wú)序的集合,可以存放任意類型對(duì)象,所有其他對(duì)象都繼承自這個(gè)對(duì)象。創(chuàng)建Object類型有兩種,一種是使用new運(yùn)算符,...

    Lsnsh 評(píng)論0 收藏0
  • JavaScript數(shù)組

    摘要:與稀疏數(shù)組對(duì)立的為密集數(shù)組,密集數(shù)組的索引會(huì)被持續(xù)的創(chuàng)建,并且其元素的數(shù)量等于其長(zhǎng)度。創(chuàng)建一個(gè)長(zhǎng)度為的數(shù)組,并初始化了個(gè)元素使用構(gòu)造函數(shù)創(chuàng)建數(shù)組對(duì)象的時(shí)候,關(guān)鍵字是可以省略的。另外使用和刪除元素是影響數(shù)組的長(zhǎng)度的。 說(shuō)明:本文只總結(jié)了JavaScript數(shù)組在web端的行為,不包括NodeJs端的行為。本文不涉及類型化數(shù)組(TypedArray)的討論、總結(jié)。 一、什么是數(shù)組 數(shù)組的定...

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

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

0條評(píng)論

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