国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaScript數(shù)據(jù)結(jié)構(gòu)與算法整理------數(shù)組

這篇具有很好參考價值的文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)與算法整理------數(shù)組。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

一、數(shù)組的定義

? ? ? ? 數(shù)組的標(biāo)準(zhǔn)定義:一個存儲元素的線性集合,元素可以通過索引來任意存取,索引通常是數(shù)字,用來計(jì)算元素之間存儲位置的偏移量,幾乎所有的編程語言都有類似的數(shù)據(jù)結(jié)構(gòu),而JavaScript的數(shù)組略有不同。

? ? ? ? JavaScript中的數(shù)組是一種特殊的對象,用來表示偏移量的索引是該對象的屬性,索引可能是整數(shù)。然而,這些數(shù)字索引在內(nèi)部轉(zhuǎn)換為字符串類型,這是因?yàn)镴avaScript對象中的內(nèi)部屬性必須是字符串。數(shù)組在JavaScript中只是一個特殊的對象,所以效率不如其他語言效率高。

? ? ? ?JavaScript中的數(shù)組,嚴(yán)格來說應(yīng)該稱作對象,是特殊的JavaScript對象,在內(nèi)部歸類為數(shù)組。由于Array在JavaScript中被當(dāng)為對象,因此他有很多屬性和方法可以在編程中使用。

二、數(shù)組的使用

? ? 1. 創(chuàng)建數(shù)組

? ? ? ? ? 最簡單的方式就是 []操作符來聲明一個數(shù)組變量

var nums = []
print(numbers.length); // 顯示 0
---------分割線------------
var nums = [1,2,3,4,5]
print(numbers.length); // 顯示 5

? ? ? ? ? 還可以調(diào)用Array的構(gòu)造函數(shù)來創(chuàng)建一個數(shù)組

var nums = new Array()
print(numbers.length); // 顯示 0

--------------分割線------------------

var nums = new Array(1,2,3,4,5)
print(numbers.length); // 顯示 5


? ? ? ? ?而且 數(shù)組中的元素不必是同一種數(shù)據(jù)類型

var nums = [1,'a','b',2,4]

? ? ? ? ?可以使用Array.isArray()判斷是否是數(shù)組

let n = 1
let nums = [1,2,'a','b']

pint(Array.isArray(n)) // false
pint(Array.isArray(nums)) // true

? ? ? ? 大多數(shù)數(shù)JavaScript專家推薦 [ ]

操作符 來創(chuàng)建數(shù)組 因?yàn)樾矢?/p>

?2.讀寫數(shù)組

? ? ? 在一條賦值語句中可以使用? [ ] 操作符將數(shù)據(jù)賦值給數(shù)組,比如將 1-100賦值給數(shù)組:

var nums = []

 for(let i=0,i<100,i++){
     nums[i] = i + 1
 }

? ? ?還可以用 [ ] 操作符進(jìn)行讀取數(shù)組的中元素

var nums =[5,4,3,2,1];
vat sum = nums[0]+nums[1]+nums[2]+nums[3]+nums[4];
pint(sum)  // 15

? ? JavaScript中 數(shù)組也是對象,數(shù)組的長度可以是任意長度,超出其創(chuàng)建時的指定長度。length屬性反映的是當(dāng)前數(shù)組元素的個數(shù),使用它可以確保循環(huán)遍歷了數(shù)組中的所有的元素。

3. 由字符串生成素組

? 調(diào)用字符串對象的方法 split()方法可以生成數(shù)組,

var str = 'zhong guo hong shi zui mei de yan se'

var arr =  str.split(" ") // 以空格分隔

log(arr) // ['zhong','guo','hong','shi','zui'.'mei','de','yan','se']
 

4. 對數(shù)組的整體性操作

? ? ?淺拷貝:把一個數(shù)組賦給另外一個數(shù)組,只是為被賦值的數(shù)組添加了一個新的引用,當(dāng)你通過原引用修改了數(shù)組的值,那么另一個引用數(shù)組也會變化:

var nums = [1,2,3,4,5]

var samenums = nums

nums[0] = 6

pint(samenums[0]) // 6

深拷貝:將數(shù)組中的元素都復(fù)制一份到新數(shù)組中:

function copy(arr1,arr2){
   for(var i =0;i< arr1.length; i++){
       arr2[i] = arr1[i]
   }
}

var nums = [1,2,3,4,5,6] 
var sameNums = [];

copy(nums,sameNums);

nums[0] = 9;

pint(sameNums[0])  // 1

三.存取函數(shù)

1.查找元素?

? indexOf() 是最常用的存取函數(shù)之一,用來查找傳進(jìn)來的參數(shù)在數(shù)組中是否存在,如果存在 返回索引,如果不存在就返回 -1

var nums = [1,2,3,4,'a',5]

var n = nums.indexOf('a')
pint(n) // 4
var n = nums.indexOf('b')
pint(n) // -1

如果數(shù)組中有多個相同的元素,那么indexOf() 就會返回第一個元素的索引,

lastIndexOf()? 正好相反 ,如果有多個相同元素,就會返回最后一個元素的索引;

2.數(shù)組的字符串表示

?有兩個方法可以將數(shù)組轉(zhuǎn)為字符串: join()和toString(),這個兩個方法都會返回數(shù)組的所有元素的字符串,各個元素之間以逗號隔開。

3.由已有數(shù)組創(chuàng)建新的數(shù)組文章來源地址http://www.zghlxwxcb.cn/news/detail-423843.html

? ? ? ?concat() splice() 方法允許通過已有數(shù)組創(chuàng)建新數(shù)組。
? ? ? ? concat()? 方法可以合并多個數(shù)組創(chuàng)建一個新數(shù)組;
? ? ? ?splice() 方法截取一個數(shù)組的子集創(chuàng)建一個新數(shù)組;

到了這里,關(guān)于JavaScript數(shù)據(jù)結(jié)構(gòu)與算法整理------數(shù)組的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【算法 & 高級數(shù)據(jù)結(jié)構(gòu)】樹狀數(shù)組:一種高效的數(shù)據(jù)結(jié)構(gòu)(一)

    【算法 & 高級數(shù)據(jù)結(jié)構(gòu)】樹狀數(shù)組:一種高效的數(shù)據(jù)結(jié)構(gòu)(一)

    ?? 個人主頁 :為夢而生~ 關(guān)注我一起學(xué)習(xí)吧! ?? 專欄 :算法題、 基礎(chǔ)算法~趕緊來學(xué)算法吧 ?? 往期推薦 : 【算法基礎(chǔ) 數(shù)學(xué)】快速冪求逆元(逆元、擴(kuò)展歐幾里得定理、小費(fèi)馬定理) 【算法基礎(chǔ)】深搜 樹狀數(shù)組 (Binary Indexed Tree,BIT)是一種數(shù)據(jù)結(jié)構(gòu),用于高效地處理

    2024年03月11日
    瀏覽(27)
  • 【算法 & 高級數(shù)據(jù)結(jié)構(gòu)】樹狀數(shù)組:一種高效的數(shù)據(jù)結(jié)構(gòu)(二)

    【算法 & 高級數(shù)據(jù)結(jié)構(gòu)】樹狀數(shù)組:一種高效的數(shù)據(jù)結(jié)構(gòu)(二)

    ?? 個人主頁 :為夢而生~ 關(guān)注我一起學(xué)習(xí)吧! ?? 專欄 :算法題、 基礎(chǔ)算法、數(shù)據(jù)結(jié)構(gòu)~趕緊來學(xué)算法吧 ?? 往期推薦 : 【算法基礎(chǔ) 數(shù)學(xué)】快速冪求逆元(逆元、擴(kuò)展歐幾里得定理、小費(fèi)馬定理) 【算法基礎(chǔ)】深搜 數(shù)據(jù)結(jié)構(gòu)各內(nèi)部排序算法總結(jié)對比及動圖演示(插入排序

    2024年03月26日
    瀏覽(24)
  • 數(shù)據(jù)結(jié)構(gòu)與算法 | 數(shù)組(Array)

    數(shù)據(jù)結(jié)構(gòu)與算法 | 數(shù)組(Array)

    數(shù)組(Array)應(yīng)該是最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)之一,它由相同類型的元素組成的集合,并按照一定的順序存儲在內(nèi)存中。每個元素都有一個唯一的索引,可以用于訪問該元素。 數(shù)組索引(Index): 數(shù)組中的每個元素都有一個唯一的整數(shù)索引,從0開始計(jì)數(shù)。索引用于訪問數(shù)組中的元素

    2024年02月08日
    瀏覽(57)
  • 數(shù)據(jù)結(jié)構(gòu)與算法(一): 稀疏數(shù)組

    數(shù)據(jù)結(jié)構(gòu)與算法(一): 稀疏數(shù)組

    在五子棋游戲或類似的游戲中,我們可以把整個棋盤想象成是一個有規(guī)律的二維數(shù)組,其值由0、1、2三個數(shù)字組成,0代表空白區(qū)域,1代表白子,2代表黑子。這種情況:即當(dāng)一個數(shù)組中大部分元素為0或者為同一值時,存儲該數(shù)組數(shù)據(jù)可以使用稀疏數(shù)組來對原始數(shù)組進(jìn)行精簡,

    2024年02月11日
    瀏覽(38)
  • 數(shù)據(jù)結(jié)構(gòu)與算法--javascript(持續(xù)更新中...)

    數(shù)據(jù)結(jié)構(gòu)與算法--javascript(持續(xù)更新中...)

    1. 數(shù)據(jù)結(jié)構(gòu) 隊(duì)列: 一種遵循 先進(jìn)先出 (FIFO / First In First Out) 原則的一組有序的項(xiàng);隊(duì)列在尾部添加新元素,并從頭部移除元素。最新添加的元素必須排在隊(duì)列的末尾。 (例如:去食堂排隊(duì)打飯,排在前面的人先打到飯,先離開;排在后面的人后打到飯,后離開。) 棧: 一

    2024年02月16日
    瀏覽(25)
  • 【數(shù)據(jù)結(jié)構(gòu)和算法】尋找數(shù)組的中心下標(biāo)

    【數(shù)據(jù)結(jié)構(gòu)和算法】尋找數(shù)組的中心下標(biāo)

    Java基礎(chǔ)合集 數(shù)據(jù)結(jié)構(gòu)與算法合集 設(shè)計(jì)模式合集 多線程合集 分布式合集 ES合集 其他系列文章導(dǎo)航 文章目錄 前言 一、題目描述 二、題解 2.1 前綴和的解題模板 2.1.1 最長遞增子序列長度 2.1.2 尋找數(shù)組中第 k 大的元素 2.1.3 最長公共子序列長度 2.1.4 尋找數(shù)組中第 k 小的元素 2

    2024年02月04日
    瀏覽(27)
  • 數(shù)據(jù)結(jié)構(gòu)與算法-數(shù)組(附阿里面試題)

    ??????? 給你一個文件里面包含全國人民(14億)的年齡數(shù)據(jù)(0~180),現(xiàn)在要你統(tǒng)計(jì)每一個年齡?? 有多少人? ???????? 給定機(jī)器為 單臺+2CPU+2G內(nèi)存。不得使用現(xiàn)成的容器,比如map等。 (這一句可以忽略) ????????在以上情況下你該如何以最高效的方法來解決這個

    2024年02月13日
    瀏覽(26)
  • 【數(shù)據(jù)結(jié)構(gòu)和算法】使用數(shù)組的結(jié)構(gòu)實(shí)現(xiàn)鏈表(單向或雙向)

    【數(shù)據(jù)結(jié)構(gòu)和算法】使用數(shù)組的結(jié)構(gòu)實(shí)現(xiàn)鏈表(單向或雙向)

    上文我們通過結(jié)構(gòu)體的結(jié)構(gòu)實(shí)現(xiàn)了隊(duì)列 、以及循環(huán)隊(duì)列的實(shí)現(xiàn),我們或許在其他老師的教學(xué)中,只學(xué)到了用結(jié)構(gòu)體的形式來實(shí)現(xiàn)鏈表、隊(duì)列、棧等數(shù)據(jù)結(jié)構(gòu),本文我想告訴你的是,我們 可以使用數(shù)組的結(jié)構(gòu)實(shí)現(xiàn)鏈表、單調(diào)棧、單調(diào)隊(duì)列 目錄 前言 一、用數(shù)組結(jié)構(gòu)的好處 1.數(shù)

    2024年01月20日
    瀏覽(96)
  • 數(shù)據(jù)結(jié)構(gòu)與算法之查找: 順序查找 (Javascript版)

    順序查找 思路 遍歷數(shù)組 找到跟目標(biāo)值相等元素,就返回它的下標(biāo) 沒有找到,返回-1 算法實(shí)現(xiàn) 總結(jié) 非常低效,算是入門搜索 時間復(fù)雜度:O(n) 對于數(shù)組結(jié)構(gòu)或鏈表結(jié)構(gòu)而言,沒什么太多可說的

    2024年02月05日
    瀏覽(32)
  • 數(shù)據(jù)結(jié)構(gòu)與算法之排序: 計(jì)數(shù)排序 (Javascript版)

    排序 排序:把某個亂序的數(shù)組變成升序或降序的數(shù)組 (這里用數(shù)組來做舉例) 計(jì)數(shù)排序 核心思想 :通過計(jì)數(shù)而非比較來進(jìn)行排序,借助數(shù)組下標(biāo)本身就是有序的原理實(shí)現(xiàn) 適用范圍:較小的非負(fù)整數(shù)序列和最小值和最大值之間的數(shù)字范圍比較合適 基數(shù)排序需要新增一個計(jì)數(shù)數(shù)

    2024年02月06日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包