摘要:數據結構的分類數據結構是指相互之間存在著一種或多種關系的數據元素的集合和該集合中數據元素之間的關系組成。數據一般存儲著一系列數據類型相同的值,但在中,可以在數組中保存不同類型的值,但一般不需要這么用。
數據結構的分類
數據結構是指相互之間存在著一種或多種關系的數據元素的集合和該集合中數據元素之間的關系組成 。
常用的數據結構有:數組,棧,鏈表,隊列,樹,圖,堆,散列表等,如圖所示:
數組是最簡單的內存數據結構,數組是可以再內存中連續存儲多個元素的結構,在內存中的分配也是連續的,數組中的元素通過數組下標進行訪問,數組下標從0開始。 tips:數據一般存儲著一系列數據類型相同的值,但在JavaScript中,可以在數組中保存不同類型的值,但一般不需要這么用。
1.創建數組
let daysOfWeek = new Array(); let daysOfWeek = new Array(7); let daysOfWeek = new Array("1", "2", "3", "4", "5", "6", "7");
2.添加元素
// 初始化nums數組 let nums = [0,1,2,3,4,5,6]; // 指定位置添加 nums[nums.length] = 7; // 使用push(),把元素添加到數組末尾 nums.push(8);// 0...8 nums.push(9, 10);// 0...10 // 使用unshift,把元素添加到數組首位 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個數 -2,-1,3...9 nums.splice(2, 0, 0, 1, 2);// 從index=2開始插入0,1,2 -2...9
5.javascript數組方法參考
concat() // 連接2個或多個數組,并返回結果 every() // 對數組中的每一項運行給定函數,如果該函數對每一項都返回true,則返回true filter() // 對數組中的每一項運行給定函數,返回該函數能返回true的項作為新數組 forEach() // 對數組中的每一項運行給定函數,沒有返回值 join() // 按傳入的字符連接成一個字符串 indexOf() // 從前往后遍歷,返回第一個與傳入參數相等的索引值,沒找到返回-1 lastIndexOf() // 從后往前遍歷,返回第一個與傳入參數相等的索引值 map() // 對數組中的每一項運行給定函數,返回每次函數調用的結果組成新的數組 reverse() // 顛倒數組中元素的順序 slice() // 傳入索引值,將數組對應索引值范圍內的元素作為新數組返回 some() // 對數組中的每一項運行給定函數,如果某一項返回true,則返回true sort() // 按照字母順序排序,支持傳入指定排序方法的函數作為參數 toString() // 將數組作為字符串返回 valueOf() // 和toString類似,將數組作為字符串返回
6.ES6數組新增方法
@@iterator // 返回一個包含數組鍵值對的迭代器對象,可通過同步調用得到數組元素的鍵值對 copyWithin() // 復制數組中一系列元素,到該數組指定的起始位置 entries() // 返回包含數組所有鍵值對的@@iterator includes() // 數組中存在某個元素則返回true,否則返回false(es7新增) find() // 根據回調函數給定的條件從數組中查找元素,如果找到則返回該元素 findIndex() // 根據回調函數給定的條件從數組中查找元素,如果能找到就返回該元素在數組中的索引 fill() // 用傳入參數填充數組 from() // 根據已有數組創建一個新數組 keys() // 返回包含數組所有索引的@@iterator of() // 根據傳入的參數創建一個新數組 values() // 返回包含數組中所有值的@@iterator
7.數組優缺點
優點:
(1)按照索引查詢元素速度快
(2)按照索引遍歷數組方便
缺點:
(1)數組的大小固定后就無法擴容了
(2)數組只能存儲一種類型的數據
(3)添加,刪除的操作慢,因為要移動其他的元素。
適用場景:
頻繁查詢,對存儲空間要求不大,很少增加和刪除的情況。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/101631.html
摘要:筆者作為一位,將工作以來用到的各種優秀資料神器及框架整理在此,畢竟好記性不如爛鍵盤,此前端知識點大百科全書前端掘金,,不定期更新技巧前端掘金技巧,偶爾更新。計算數組的極值技巧使你的更加專業前端掘金一個幫你提升技巧的收藏集。 CSS 樣式畫各種圖形 - 前端 - 掘金下面是一些我在 CSS 中經常用到的圖案,還有一些是在css-tricks看到的。記錄一下,以后會用到。會持續更新… 一、...
摘要:筆者作為一位,將工作以來用到的各種優秀資料神器及框架整理在此,畢竟好記性不如爛鍵盤,此前端知識點大百科全書前端掘金,,不定期更新技巧前端掘金技巧,偶爾更新。計算數組的極值技巧使你的更加專業前端掘金一個幫你提升技巧的收藏集。 CSS 樣式畫各種圖形 - 前端 - 掘金下面是一些我在 CSS 中經常用到的圖案,還有一些是在css-tricks看到的。記錄一下,以后會用到。會持續更新… 一、...
摘要:至于這三個的具體概念,可以看圖中集合的實現首先,創建一個構造函數。前端路漫漫,且行且歌的前端樂園原文鏈接寒假前端學習學習數據結構與算法三集合 本系列的第一篇文章: 學習JavaScript數據結構與算法(一),棧與隊列第二篇文章:學習JavaScript數據結構與算法(二):鏈表第三篇文章:學習JavaScript數據結構與算法(三):集合第四篇文章:學習JavaScript數據結構與...
摘要:中的算法附道面試常見算法題解決方法和思路關注每日一道面試題詳解面試過程通常從最初的電話面試開始,然后是現場面試,檢查編程技能和文化契合度。值得記住的數組方法有和。一個好的解決方案是使用內置的方法。 JavaScript中的算法(附10道面試常見算法題解決方法和思路) 關注github每日一道面試題詳解 Introduction 面試過程通常從最初的電話面試開始,然后是現場面試,檢查編程...
摘要:今天同學去面試,做了兩道面試題全部做錯了,發過來給道典型的面試題前端掘金在界中,開發人員的需求量一直居高不下。 排序算法 -- JavaScript 標準參考教程(alpha) - 前端 - 掘金來自《JavaScript 標準參考教程(alpha)》,by 阮一峰 目錄 冒泡排序 簡介 算法實現 選擇排序 簡介 算法實現 ... 圖例詳解那道 setTimeout 與循環閉包的經典面...
閱讀 3621·2021-09-30 09:59
閱讀 2229·2021-09-13 10:34
閱讀 576·2019-08-30 12:58
閱讀 1507·2019-08-29 18:42
閱讀 2198·2019-08-26 13:44
閱讀 2921·2019-08-23 18:12
閱讀 3321·2019-08-23 15:10
閱讀 1625·2019-08-23 14:37