陣列
- 一、陣列的概念
- 二、創建陣列
- 1、利用陣列字面量創建陣列
- 2、利用 new 創建陣列
- 3、陣列元素的型別
- 三、獲取陣列中的元素
- 1、陣列的索引
- 四、遍歷陣列
- 1、陣列的長度
- 五、陣列中新增元素
- 1、 通過修改 length 長度新增陣列元素
- 2、通過修改陣列索引新增陣列元素
- 六、陣列案例
- 七、二維陣列
- 1、創建二維陣列
- 1、使用“new Array()”字面量來創建陣列
- 2、使用“[ ]”字面量來創建陣列
- 2、二維陣列求和
- 3、二維陣列轉置
一、陣列的概念
陣列是指一組資料的集合,其中的每個資料被稱作元素,在陣列中可以存放任意型別的元素,陣列是一種將一組資料存盤在單個變數名下的優雅方式,
// 普通變數一次只能存盤一個值
var num = 10;
// 陣列一次可以存盤多個值
var arr = [1,2,3,4,5];
二、創建陣列
1、利用陣列字面量創建陣列
//1. 使用陣列字面量方式創建空的陣列
var 陣列名 = [];
//2. 使用陣列字面量方式創建帶初始值的陣列
var 陣列名 = ['小白','小黑','大黃','瑞奇'];
- 陣列的字面量是方括號 [ ]
- 宣告陣列并賦值稱為陣列的初始化
2、利用 new 創建陣列
var 陣列名 = new Array() ;
var arr = new Array(); // 創建一個新的空陣列
這里的A要大寫,
3、陣列元素的型別
陣列中可以存放任意型別的資料,例如字串,數字,布林值等,
var arrStus = ['熊',18,true,41.2];
三、獲取陣列中的元素
1、陣列的索引
索引 (下標) :用來訪問陣列元素的序號(陣列下標從 0 開始),

陣列可以通過索引來訪問、設定、修改對應的陣列元素,我們可以通過“陣列名[索引]”的形式來獲取陣列中的元素,這里的訪問就是獲取得到的意思,
// 定義陣列
var arr=[1,2,3];
// 獲取陣列中的各個個元素
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
輸出結果為:

例如:定義一個陣列,里面存放星期一、星期二…… 直到星期日(共7天),在控制臺輸出:星期日,
代碼如下:
var arr=['星期一','星期二','星期三','星期四','星期五','星期六','星期天'];
console.log(arr);
console.log(arr[arr.length-1]);
輸出結果為:

四、遍歷陣列
遍歷: 就是把陣列中的每個元素從頭到尾都訪問一次(類似我們每天早上學生的點名),可以通過 for 回圈索引遍歷陣列中的每一項,
如下所示:
var arr=['星期一','星期二','星期三','星期四','星期五','星期六','星期天'];
// console.log(arr);
for(var i = 0;i<arr.length;i++){
console.log(arr[i]);
}
列印結果為:

1、陣列的長度
使用“陣列名.length”可以訪問陣列元素的數量(陣列長度),
var arr=['星期一','星期二','星期三','星期四','星期五','星期六','星期天'];
alert(arr.length);
列印結果為:

注意:
(1)此處陣列的長度是陣列元素的個數 ,不要和陣列的索引號混淆,
(2)當陣列里面的元素個數發生了變化, length 屬性跟著一起變化,
例題:求陣列 [2,6,1,7, 4] 里面所有元素的和以及平均值,
分析:
(1)宣告一個求和變數 sum,
(2)遍歷這個陣列,把里面每個陣列元素加到 sum 里面,
(3)用求和變數 sum 除以陣列的長度就可以得到陣列的平均值,
代碼如下:
var arr = [2,6,1,7,4];
var sum = 0;
var average = 0;
for(var i =0; i<arr.length;i++){
sum += arr[i]
}
average = sum/arr.length;
console.log('它們的和是'+sum);
console.log('它們的平均值是'+average);
列印結果為:

五、陣列中新增元素
1、 通過修改 length 長度新增陣列元素
var arr = ['red', 'green', 'blue', 'pink'];
arr.length = 7;
console.log(arr);
console.log(arr[4]);
console.log(arr[5]);
console.log(arr[6]);
其中索引號是 4,5,6 的空間沒有給值,就是宣告變數未給值,默認值就是 undefined,

2、通過修改陣列索引新增陣列元素
- 可以通過修改陣列索引的方式追加陣列元素
- 不能直接給陣列名賦值,否則會覆寫掉以前的資料
var arr = ['red', 'green', 'blue', 'pink'];
arr[4] = 'hotpink';
console.log(arr);
列印結果為:

六、陣列案例
例如(1):
新建一個陣列,里面存放10個整數( 1~10), 要求使用回圈追加的方式輸出: [1,2,3,4,5,6,7,8,9,10]
分析:
使用回圈來追加陣列,
宣告一個空陣列 arr,
回圈中的計數器 i 可以作為陣列元素存入,
由于陣列的索引號是從0開始的, 因此計數器從 0 開始更合適,存入的陣列元素要+1,
代碼如下:
var arr = [];
for (var i = 0; i < 10; i++) {
arr[i] = i + 1;
}
console.log(arr);
列印結果為:

(2)要求:將陣列 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素選出來,放入新陣列,
分析:
- 宣告一個新的陣列用于存放新資料,
- 遍歷原來的陣列,找出大于等于 10 的元素,
- 依次追加給新陣列 newArr,
代碼為:
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
// 定義一個變數 用來計算 新陣列的索引號
var j = 0;
for (var i = 0; i < arr.length; i++) {
if (arr[i] >= 10) {
// 給新陣列
newArr[j] = arr[i];
// 索引號 不斷自加
j++;
}
}
console.log(newArr);
輸出的結果為:

(3)洗掉指定陣列元素:將陣列[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的 0 去掉后,形成一個不包含 0 的新陣列,
分析:
- 需要一個新陣列用于存放篩選之后的資料,
- 遍歷原來的陣列,把不是 0 的資料添加到新陣列里面( 此時要注意采用陣列名+索引的格式接收資料),
- 新陣列里面的個數,用 length 不斷累加,
代碼為:
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = []; // 空陣列的默認的長度為 0
// 定義一個變數 i 用來計算新陣列的索引號
for (var i = 0; i < arr.length; i++) {
// 找出大于 10 的數
if (arr[i] != 0) {
// 給新陣列
// 每次存入一個值,newArr長度都會 +1
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
列印結果為:

七、二維陣列
1、創建二維陣列
1、使用“new Array()”字面量來創建陣列
var info = new Array(
new Array('Tom', 13, 155),
new Array('Lucy', 11, 152)
);
console.log(info);
console.log(info[0]); // 輸出結果:(3) ["Tom", 13, 155]
console.log(info[0][0]); // 輸出結果:Tom
列印結果為:

2、使用“[ ]”字面量來創建陣列
var nums = [[1, 2], [3, 4]];
console.log(nums[0]); // 輸出結果:(2) [1, 2]
console.log(nums[1][0]); // 輸出結果:3
實作效果為:

2、二維陣列求和
二維陣列求和是對二維陣列進行遍歷,需要用雙層回圈來控制二維陣列中的元素的索引值,
var arr = [[1,2,3],[4,5,6]];
var sum = 0;
for(var i =0;i< arr.length;i++){//遍歷arr陣列
for(var j = 0;j < arr[i].length;j++){//遍歷arr[i]陣列
sum += arr[i][j];
}
}
console.log(sum);
列印的結果為:

3、二維陣列轉置
二維陣列的轉置指的是將二維陣列橫向元素保存為縱向元素,


案例需求:完成二維陣列的轉置
代碼為:
var arr = [
['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ['j', 'k', 'l']
];
var res = [];
for (var i = 0; i < arr[0].length; i++) {
res[i] = [];
for(var j = 0; j < arr.length; j++) {
res[i][j] = arr[j][i]; // 為二維陣列賦值
}
}
console.log("轉置前的陣列為:");
console.log(arr);
console.log("轉置后的陣列為:");
console.log(res);
輸出的結果為:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/348408.html
標籤:其他
下一篇:java版SpringCloud+SpringBoot+mybatis+uniapp b2b2c 多商戶入駐商城 直播商城 直播帶貨商城之行業管理
