什么是JavaScrip數(shù)據(jù)結(jié)構(gòu)之數(shù)組?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
目前成都創(chuàng)新互聯(lián)公司已為上千多家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)頁空間、網(wǎng)站運營、企業(yè)網(wǎng)站設計、遼源網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。數(shù)據(jù)結(jié)構(gòu)的分類
數(shù)據(jù)結(jié)構(gòu)是指相互之間存在著一種或多種關系的數(shù)據(jù)元素的集合和該集合中數(shù)據(jù)元素之間的關系組成 。
常用的數(shù)據(jù)結(jié)構(gòu)有:數(shù)組,棧,鏈表,隊列,樹,圖,堆,散列表等,如圖所示:
數(shù)組
數(shù)組是最簡單的內(nèi)存數(shù)據(jù)結(jié)構(gòu),數(shù)組是可以再內(nèi)存中連續(xù)存儲多個元素的結(jié)構(gòu),在內(nèi)存中的分配也是連續(xù)的,數(shù)組中的元素通過數(shù)組下標進行訪問,數(shù)組下標從0開始。
tips:數(shù)據(jù)一般存儲著一系列數(shù)據(jù)類型相同的值,但在JavaScript中,可以在數(shù)組中保存不同類型的值,但一般不需要這么用。
1.創(chuàng)建數(shù)組
let daysOfWeek = new Array(); let daysOfWeek = new Array(7); let daysOfWeek = new Array('1', '2', '3', '4', '5', '6', '7');
2.添加元素
// 初始化nums數(shù)組 let nums = [0,1,2,3,4,5,6]; // 指定位置添加 nums[nums.length] = 7; // 使用push(),把元素添加到數(shù)組末尾 nums.push(8);// 0...8 nums.push(9, 10);// 0...10 // 使用unshift,把元素添加到數(shù)組首位 nums.unshift(-1);// -1...10 nums.unshift(-3,-2);// -3...10
3.刪除元素
// pop(),刪除最后一個 nums.pop();//-3...9 // shift(),刪除第一個 nums.shift();//-2...9
4.任何位置刪除或添加元素
// splice()方法 nums.splice(2, 3);// 刪除 index=2 開始的后的3個數(shù) -2,-1,3...9 nums.splice(2, 0, 0, 1, 2);// 從index=2開始插入0,1,2 -2...9
5.javascript數(shù)組方法參考
concat() // 連接2個或多個數(shù)組,并返回結(jié)果 every() // 對數(shù)組中的每一項運行給定函數(shù),如果該函數(shù)對每一項都返回true,則返回true filter() // 對數(shù)組中的每一項運行給定函數(shù),返回該函數(shù)能返回true的項作為新數(shù)組 forEach() // 對數(shù)組中的每一項運行給定函數(shù),沒有返回值 join() // 按傳入的字符連接成一個字符串 indexOf() // 從前往后遍歷,返回第一個與傳入?yún)?shù)相等的索引值,沒找到返回-1 lastIndexOf() // 從后往前遍歷,返回第一個與傳入?yún)?shù)相等的索引值 map() // 對數(shù)組中的每一項運行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成新的數(shù)組 reverse() // 顛倒數(shù)組中元素的順序 slice() // 傳入索引值,將數(shù)組對應索引值范圍內(nèi)的元素作為新數(shù)組返回 some() // 對數(shù)組中的每一項運行給定函數(shù),如果某一項返回true,則返回true sort() // 按照字母順序排序,支持傳入指定排序方法的函數(shù)作為參數(shù) toString() // 將數(shù)組作為字符串返回 valueOf() // 和toString類似,將數(shù)組作為字符串返回
6.ES6數(shù)組新增方法
@@iterator // 返回一個包含數(shù)組鍵值對的迭代器對象,可通過同步調(diào)用得到數(shù)組元素的鍵值對 copyWithin() // 復制數(shù)組中一系列元素,到該數(shù)組指定的起始位置 entries() // 返回包含數(shù)組所有鍵值對的@@iterator includes() // 數(shù)組中存在某個元素則返回true,否則返回false(es7新增) find() // 根據(jù)回調(diào)函數(shù)給定的條件從數(shù)組中查找元素,如果找到則返回該元素 findIndex() // 根據(jù)回調(diào)函數(shù)給定的條件從數(shù)組中查找元素,如果能找到就返回該元素在數(shù)組中的索引 fill() // 用傳入?yún)?shù)填充數(shù)組 from() // 根據(jù)已有數(shù)組創(chuàng)建一個新數(shù)組 keys() // 返回包含數(shù)組所有索引的@@iterator of() // 根據(jù)傳入的參數(shù)創(chuàng)建一個新數(shù)組 values() // 返回包含數(shù)組中所有值的@@iterator
7.數(shù)組優(yōu)缺點
優(yōu)點:
(1)按照索引查詢元素速度快
(2)按照索引遍歷數(shù)組方便
缺點:
(1)數(shù)組的大小固定后就無法擴容了
(2)數(shù)組只能存儲一種類型的數(shù)據(jù)
(3)添加,刪除的操作慢,因為要移動其他的元素。
適用場景:
頻繁查詢,對存儲空間要求不大,很少增加和刪除的情況。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。