摘要:可以模仿棧和隊的進(jìn)入方式隊先進(jìn)先出隊后進(jìn)后出棧后進(jìn)先出棧先進(jìn)后出將數(shù)組以特定字符串連接,并返回字符串,默認(rèn)以逗號連接。如數(shù)組成員為空位,或這三者將以空串代替。改變原數(shù)組排列方式會改變原數(shù)組,進(jìn)行升序和降序。
數(shù)組篇 定義方式
通過構(gòu)造函數(shù),new一個array,可以填寫參數(shù),一般除數(shù)字外不建議填
let arr = new Array(); let arr1 = new Array(3); //代表length為3,鍵值都是空位 0 in arr1; //false,因為是空位,所以不存在索引,數(shù)組會忽略尾部逗號
通過字面量定義
let arr = [1,2,3,4,5,56]數(shù)組類型判定
typeof,不建議,最客觀也只返回object
let arr = [1,2]; typeof arr //object
instanceof,不是最佳,原因是instanceof的原理是通過原型鏈判斷兩邊是否相等,但是在多框架下,a框架下的數(shù)組原型在b框架下就不一定了
arr instanceof Array; //true a instanceof b; //a.__proto__.proto__.... === b.prototype;a通常為對象,b為構(gòu)造函數(shù)
Array.isArray(),能解決第二種的問題
Array.isArray(arr); //true數(shù)組屬性-length
增加數(shù)組長度
let arr = [1,2,3]; arr.length = 4; 3 in arr; //false arr[3] = undefined; //能增加length值,鍵值為undefined 3 in arr; //true,
減少數(shù)組長度
let arr = [1,2,3]; arr.length = 2; console.log(arr[2]); //undefined arr.length = 0; //最簡單的清空方式,[]數(shù)組方法
valueof(),toString(),通常用于數(shù)組對象轉(zhuǎn)換成別的數(shù)據(jù)類型,arr.valueof().toString()
push,pop,shift,unshift,4種方法都能改變原數(shù)組,前兩個速度快,因為檢索位置是尾部,后兩者是首部。可以模仿棧和隊的進(jìn)入方式:
隊先進(jìn)先出:
let arr = []; arr.push(1); arr.push(2); //[1,2] arr.shift() //[2]
隊后進(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)以逗號連接。如數(shù)組成員為空位,undefined或null,這三者將以空串代替。
let arr = [,undefined,null]; arr.join(";"); //;; let arr1 = [1,,2]; arr1.join("."); //1..2
concat(),將括號內(nèi)參數(shù)與原數(shù)組進(jìn)行拼接,返回新數(shù)組,原數(shù)組不變,參數(shù)類型不固定個數(shù)不固定。是淺拷貝,如參數(shù)為對象拷貝的是索引。
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(),改變原數(shù)組排列方式(會改變原數(shù)組),進(jìn)行升序和降序。它是先將元素轉(zhuǎn)為字符串,按首個字符的u碼進(jìn)行排列,這就導(dǎo)致排列出錯。sort()可以添加傳入一個函數(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ù)組不變,兩個參數(shù)前閉后開,是淺拷貝
splice(start, count, addElement1, addElement2, ...),從start開始刪除,數(shù)量為count,接著添加后面的元素; 若填寫一個參數(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, 前者不能大于后者(同+-符號)
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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/98133.html
摘要:幾乎所有的編程語言都有類似的數(shù)據(jù)結(jié)構(gòu)。然而的數(shù)組卻略有不同。沒有定義中說的那樣的數(shù)據(jù)結(jié)構(gòu),作為替代。元素通過指定的分隔符進(jìn)行分隔。返回該對象的源代碼。把數(shù)組轉(zhuǎn)換為本地數(shù)組,并返回結(jié)果。 寫在前面的話: 經(jīng)常看到技術(shù)博客上寫的內(nèi)容很詳細(xì),對于一個問題,大家的博客內(nèi)容似乎都是一樣的。不難發(fā)現(xiàn)這些技術(shù)博客已經(jīng)成為各路教程的匯總地,而教程一般都是參考國外博客翻譯或者直接在經(jīng)典的書籍上大片抄錄。...
摘要:專題系列共計篇,主要研究日常開發(fā)中一些功能點的實現(xiàn),比如防抖節(jié)流去重類型判斷拷貝最值扁平柯里遞歸亂序排序等,特點是研究專題之函數(shù)組合專題系列第十六篇,講解函數(shù)組合,并且使用柯里化和函數(shù)組合實現(xiàn)模式需求我們需要寫一個函數(shù),輸入,返回。 JavaScript 專題之從零實現(xiàn) jQuery 的 extend JavaScritp 專題系列第七篇,講解如何從零實現(xiàn)一個 jQuery 的 ext...
摘要:不過讓流行起來的原因應(yīng)該是是目前所有主流瀏覽器上唯一支持的腳本語言。經(jīng)過測試,數(shù)字字符串布爾日期可以直接賦值,修改不會產(chǎn)生影響。再考慮對象類型為或者的情況。對于結(jié)果聲明其類型。判斷對象的類型是還是,結(jié)果類型更改。 轉(zhuǎn)載自我的個人博客 歡迎大家批評指正 1. 第一個頁面交互 這里最需要學(xué)習(xí)的老師的代碼中,每一部分功能都由函數(shù)控制,沒有創(chuàng)建一個全部變量。且最后有一個函數(shù)來控制執(zhí)行代碼...
摘要:調(diào)用堆棧是存放原始數(shù)據(jù)類型的地方除了函數(shù)調(diào)用之外。上一節(jié)中聲明變量后調(diào)用堆棧的粗略表示如下。解釋改變的正確方法是更改內(nèi)存地址。在聲明時,將在調(diào)用堆棧上分配內(nèi)存地址,該值是在堆上分配的內(nèi)存地址。 這是專門探索 JavaScript 及其所構(gòu)建的組件的系列文章的第 21 篇。 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! 如果你錯過了前面的章節(jié),可以在這里找到它們:...
摘要:屬性是一個值或一組值以數(shù)組或?qū)ο蟮男问剑菍ο蟮某蓡T。可以使用內(nèi)置構(gòu)造函數(shù)和創(chuàng)建包裝對象。因此下面的代碼將會使人很迷惑結(jié)果結(jié)果,此數(shù)組長度為應(yīng)該盡量避免使用數(shù)組構(gòu)造函數(shù)創(chuàng)建新數(shù)組。給數(shù)組對象添加返回數(shù)組中最大元素值的方法。 對象部分 Object類型 Object 是一個無序的集合,可以存放任意類型對象,所有其他對象都繼承自這個對象。創(chuàng)建Object類型有兩種,一種是使用new運算符,...
摘要:與稀疏數(shù)組對立的為密集數(shù)組,密集數(shù)組的索引會被持續(xù)的創(chuàng)建,并且其元素的數(shù)量等于其長度。創(chuàng)建一個長度為的數(shù)組,并初始化了個元素使用構(gòu)造函數(shù)創(chuàng)建數(shù)組對象的時候,關(guān)鍵字是可以省略的。另外使用和刪除元素是影響數(shù)組的長度的。 說明:本文只總結(jié)了JavaScript數(shù)組在web端的行為,不包括NodeJs端的行為。本文不涉及類型化數(shù)組(TypedArray)的討論、總結(jié)。 一、什么是數(shù)組 數(shù)組的定...
閱讀 3504·2021-10-18 13:30
閱讀 2957·2021-10-09 09:44
閱讀 1973·2019-08-30 11:26
閱讀 2306·2019-08-29 13:17
閱讀 769·2019-08-29 12:17
閱讀 2259·2019-08-26 18:42
閱讀 484·2019-08-26 13:24
閱讀 2964·2019-08-26 11:39