第一章數組

1.什么是數組?

數組是一個線性集合,通過索引進行存取,索引可能是數字,用來計算偏移量。

1.1? js 數組與其他語言數組的區(qū)別

1.1.1? 效率上不如其他語言

????js本著萬物皆對象的宗旨,所以數組是一種特殊的對象,對象的索引必須是字符串,所以數組的索引是字符串,其他語言是數字類型,在效率上不如其他語言。

1.1.2? js 數組可以不必為同一種數據類型

1.1.3 js 數組的長度可以超過指定的長度,超過后數組會自動擴展

2.創(chuàng)建新數組

2.1 創(chuàng)建數組有兩種方法? ?第一種 字面量方式 var arr =[2,3,4,5];? 速度比較快。第二種 var arr = new Array(),括號內傳入一個參數,表示數組長度,數組的每一個值都是undefined,輸入多個參數表示數組的內容。

特別提醒:?判斷一個對象是否是數組用 Array.isArray()

?2.2 對數組進行操作

2.2.1 讀寫數組

有兩種方法 ,第一種 for 循環(huán)對數組進行賦值

var nums = [];

for(var i=0;i<100;++i){
? ? nums[i] = i+1;
}

第二種,字符串生成數組

var str = 'wo shi yi ge hao ren';

console.log(str.split( ' ')) 接收一個分隔符,用來劃分數組的個數

特別提醒:在for循環(huán)里++i 和? i++沒有區(qū)別

2.2.2 對數組的整體操作

第一種: 賦值?

將一個數組賦值給另一個數組,數組是引用類型的,引用類型的直接賦值是淺拷貝,改變新的變量會影響上一個變量。需要進行深拷貝。深拷貝的方法有四種 :1.循環(huán)賦值 2. 擴展運算符 3.slice(0) 4.concat()

2.3 存取函數

1.查找?

indexof() 用來查找目標數組是否存在目標。存在返回第一個匹配目標的索引,不存在返回-1,lastIndexOf()存在返回倒數第一個索引,不存在返回-1.

2. 數組轉字符串

1.join() 可接收參數,作為數組轉字符串的鏈接符,默認就逗號

2.toString() 只能是逗號,不接收參數,作為js默認方法,輸入會進行默認調用。

3.由已知數組創(chuàng)建新數組

concat() 合并多個數組,創(chuàng)新一個新數組??梢允菙到M或者字符串.從左到右連接。

splice() 截取一個數組組成新數組1.第一個參數死索引的起點,第二個參數 在刪除截取的時候是長度,在增加插入的時候是0,增加插入的時候有第三個參數,為要增加的值。

4.數組的方法

push() 向后增加 pop() 從后刪除

unshift() 向前增加 shift() 從?前刪除

返回值 插入值返回數組的長度,刪除值返回的是被刪除的元素。

5.數組排序

reverse() 反向

sort() 默認是以字符串的字典排序的,數值類型的排序需要傳入一個比較規(guī)則的函數。如若不傳,會以字符串的規(guī)則排數字。

6.迭代器

不生產新數組的方法

array.forEach(規(guī)則函數)

every() 接受一個返回布爾值的函數,全部為真才為真,返回值是一個布爾值

some() 接受一個布爾值的函數,一真為真

reduce() 接受一個函數,返回一個值,該方法從一個累加值開始,不斷對累加值和數組中的后續(xù)元素執(zhí)行該函數??梢杂脕砬蠛?和連接字符串。

reduceRight() 從由向左。

7.生產新數組的方法

map()

flitter()類every 接受一個布爾值的函數,返回為真的集合。

2.3 二維數組和多維數組

js只支持一維數組,通過在數組里保存數組的形式創(chuàng)建二維或多維數組。

創(chuàng)建二維數組,讓一維數組的每一個元素也是一個數組

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容