2018-05-17

JavaScript 六、數組API

不與眾生

已關注

2018-05-16 19:57 · 字數 1140 · 閱讀 2 ·? 日記本

數組:內存中連續存儲多個變量的存儲空間

一、聲明數組:

1.聲明一個空數組

? ? ? ? ? ? ? var arr=[];

? ? ? ? ? ? ? var arr=new Array()

2.聲明數組的同時初始化數據

var arr=['值1','值2','值3'];

var arr=new Array('值1','值2','值3');

3.創建n個空元素的數組

? ? ? ? ? ? ? var arr=new Array(n);

二、訪問數組中的元素

下標:數組中唯一標識一個元素存儲位置的序號

下標默認從0開始,逐漸遞增,不重復

arr[i]訪問下標為i位置的元素

三、數組的length屬性

標識了數組中理論上的元素個數

任何情況下,數組的長度永遠等于最大下標+1

固定套路:

訪問數組中的最后一個元素arr[arr.length-1]

訪問數組中倒數第n個元素 arr[arr.length-n]

末尾追加新元素:arr[arr.length]=新值

js中的數組有三個不限制:

1.不限制數據類型

2.不限制下標越界

獲取元素時,下標越界,不報錯,返回undefined

3.不限制元素的個數?

設置元素時下標越界會自動添加新元素

四、數組的遍歷

遍歷:訪問數組中的每個元素

? ? ? ? ? ? ? ? ? ? for(var i=0;i

console.log(arr[i]);//輸出數組中的當前元素

? ? ? ? ? ? ? ? ? ? }?

關聯數組/hash數組

索引數組:下標為數字的數組

關聯數組:下標不位數字的數組

? ? ? ? ? ? ? var zse=[];

zse['name']='張三';

? ? ? ? ? ? ? zse['age']='18';

? ? ? ? ? ? ? zse['sex']='boy';

? ? ? ? ? ? ? console.log(zse);

注:關聯數組沒有length屬性

關聯數組不能用for遍歷,要用for....in遍歷

? ? ? ? ? ? ? ? for(var key in hash){

//key代表關鍵字,即下標

//hash代表數組名

? ? ? ? ? ? ? ? }

var zse=[];

? ? ? ? ? ? ? zse['name']='張三';

? ? ? ? ? ? ? zse['age']='18';

? ? ? ? ? ? ? zse['sex']='boy';

? ? ? ? ? ? ? console.log(zse);

? ? ? ? ? ? ? for(var key in zse){

? ? ? ? ? ? ? console.log(zse[key]);

? ? ? ? ? ? ? }

五、數組API

1.String()把數組轉為字符串

練習:

? ? ? ? ? ? ? ? var arr=[1,2,3,4,5];

? ? ? ? ? ? ? ? var str=String(arr);

? ? ? ? ? ? ? ? console.log(str);

不修改原數組

2.join('')拼接,把數組中的元素拼接為字符串?

練習:

? var arr=['a','b','c','d','e'];

? var str=arr.join('-');

var str=arr.join();//join中不添加任何拼接符的時候默認和String一樣

? console.log(str); */

3.concat()拼接

練習:

? var arr=[1,2,3,4,5];

? var str=arr.concat('a','b');

? console.log(str);

2個數組拼接

? ? ? ? ? ? ? ? ? var arr2=['true','false'];

? ? ? ? ? ? ? ? ? var str1=arr.concat(arr2);

? ? ? ? ? ? ? ? ? console.log(str1);

注:join和concat的區別

join適用于把字母拼接為單詞,把單詞拼接為句子,拼出來的是字符串

concat是給數組后面拼接新元素,或把兩個數組拼接,拼出的還是數組

4.slice(strati,endi+1)截取

特點1.含頭不含尾

特點2.如果省略第二個參數默認從第一個參數開始截取到末尾

特點3.如果兩個參數都省略相當于復制原字符串

支持負數參數

練習:

? ? ? ? ? ? ? ? ? ? var arr=[1,2,3,4,5];

var str1=arr.slice(1,3);//從下標為1的位置截取到下標為3的位置

? ? ? ? ? ? ? ? ? ? console.log(str1);

var str2=arr.slice(1);//如果省略第二個參數默認從第一個參數開始截取到末尾

var str3=arr.slice();//如果兩個參數都省略相當于復制原字符串

var str4=arr.slice(-4,-2);//支持負數參數,小數在前,大數在后

? ? ? ? ? ? ? ? ? ? console.log(str4);

5.splice(strati,n)刪除 插入 替換

練習:

//刪除

? ? ? ? ? ? ? ? ? ? ? var arr=[1,2,3,4,5];

var str=arr.splice(1,2);//表示從下標為1的位置處開始刪除2個

? ? ? ? ? ? ? ? ? ? ? console.log(str);

? ? ? ? ? ? ? ? ? ? ? console.log(arr);

//插入

? ? ? ? ? ? ? ? ? ? ? ? var arr=[1,2,3,4,5];

var str=arr.splice(1,0,'a','b','c');//從下標為1的位置處開始刪除0個并插入新元素

? ? ? ? ? ? ? ? ? ? ? ? console.log(arr);

//替換

? ? ? ? ? ? ? ? ? ? ? ? var arr=[1,2,3,4,5];

var str=arr.splice(1,2,'a','b');//從下標為1的位置處開始刪除2個并替換新元素

? ? ? ? ? ? ? ? ? ? ? ? console.log(arr);

6.reverse()翻轉

練習:

? ? ? ? ? ? ? ? ? ? var arr=[1,2,3,4,5];

? ? ? ? ? ? ? ? ? ? var str=arr.reverse();

? ? ? ? ? ? ? ? ? ? console.log(str);

六、數組排序

? ? ? ? ? arr.sort();

? ? ? ? ? ? ? var arr=[2,4,3,5,1];

? ? ? ? ? var str=arr.sort();

? ? ? ? ? console.log(str);

像以下這種函數用arr.sort無法實現排序,這時候就需要用到比較器函數

? var arr=[1,12,22,13,23,33,3,2];

? function cmp(a,b){

return a-b;//升序排列

return b-a;//降序排列

? }

? ? ? console.log(arr.sort(cmp));

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 數組:內存中連續存儲多個變量的存儲空間, 一、聲明數組: 1.聲明一個空數組 var arr=[]; var ar...
    王哲勝閱讀 1,653評論 0 0
  • 前言 最先接觸編程的知識是在大學里面,大學里面學了一些基礎的知識,c語言,java語言,單片機的匯編語言等;大學畢...
    oceanfive閱讀 3,130評論 0 7
  • 第一章1,什么叫程序:程序就是計算機按照人類完成事物的步驟和邏輯,通過計算機命令來逐步執行最終實現目標的一種機器語...
    悟名先生閱讀 982評論 0 4
  • 一、數組 數組是一個有序列表,所以有下標. 并且數組在js中可以存在任意類型的數據.并且同一個數組中可以存放不同的...
    空谷悠閱讀 521評論 0 1
  • 3月,正是櫻花盛開的季節,蘭和柯南正走在回家的路上,看到這街道兩旁的櫻花,兩人都不禁想起了櫻花班時的回憶。 “好開...
    紫月瞳閱讀 1,760評論 2 2