iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
0
Modern Web

用30天了解javascript系列 第 12

[用30天了解javascript]Day12.陣列的屬性及方法

  • 分享至 

  • xImage
  •  

陣列屬性

length

取得陣列長度度,再利用for迴圈將陣列輸出

var items = ['dog', 'cat', 'bee', 'bear'];
console.log(items.length); // 4

陣列+for

var school = [
	{
		class: 'a班',
		students: 20
	},
	{
		class: 'b班',
		students: 22
	},
	{
		class: 'c班',
		students: 24
	},
]
//計算學校總人數
var schoolLength = school.length;
var sum = 0;
for(var i=0; i<schoolLength; i++){
	sum += school[i].students;
}
console.log(sum); // 66

陣列方法

reverse()

反轉

var num = [1,2,3];
num.reverse();
console.log(num);//[3, 2, 1]
//可以使用console.table會以表格方式呈現
console.table(num)

https://ithelp.ithome.com.tw/upload/images/20200930/201120535ebd7IBZXg.png

sort()

排序,預設由小到大

var num = [3,2,1];
num.sort();
console.log(num);//[1, 2, 3]

取出陣列元素

https://ithelp.ithome.com.tw/upload/images/20200930/20112053I4pVe0hm5v.jpg

push()、pop()

將值增加/移除陣列最後一個位置

var num = [1,2,3,4];
num.push(5,6,7); //增加到最後的位置
console.log(num);//[1, 2, 3, 4, 5, 6, 7]

var num = [1,2,3,4];
num.pop(); //移除最後一個位置
console.log(num);//[1, 2, 3]

shift()、unshift()

取出/加入第一個內容

var num = [1,2,3,4,5,6,7,8];
//shift移除陣列的第一個內容
var shiftNum = num.shift();
//unshift增加指定內容到第一個位置
var unshiftNum = num.unshift(12,22);
console.log('shift取出的數字:' + shiftNum);  // 1
console.log('執行shiftnum後的num陣列:');  // [2, 3, 4, 5, 6, 7, 8]
console.log('執行unshiftNum的num陣列:' + num);  // 12,22,2,3,4,5,6,7,8

重組陣列

splice(索引值, 移除數量, 加入元素)

插入/刪除資料

var num = [1,2,3];
num.splice(2,0,100,200,300); //沒有被刪除元素,100,200,300加入到第二個位置
console.log(num);//[1, 2, 100, 200, 300, 3]

var num = [1,2,3,4,5,6,7,8];
num.splice(2,3,100,200,300); //刪除3,4,5並把100,200,300加到此位置
console.log(num);//[1, 2, 100, 200, 300, 6, 7, 8]

filter()

篩選

var num = [1,2,3,4,5,6,7,8,9,10]
//篩選被3整除的數
var filterNum = num.filter(function(item){
   return item % 3 === 0;
})
console.log(filterNum); //[3, 6, 9]

indexOf()

判斷陣列中是否包含某個值

indexOf(判斷的值, 從陣列哪個位置開始)

var num = [1,2,3,4,5,6,7,8];
console.log(num.indexOf(6));// 5

var num = [1,2,3,4,5,6,7,8];
console.log(num.indexOf(9));//-1

map()

會return一個值

var num = [1,2,3,4,5];
var mapNum = num.map(function(item){
	return item + 10
})
console.log(mapNum); //[11, 12, 13, 14, 15]

reduce()

陣列裡面元素做累加,從左邊到右邊

var num = [1,2,3,4,5,6,7,8,9,10];
var total = num.reduce(function(prev,next){
   return prev + next
}, 0); 
console.log(total); // 55

concat()

將兩個陣列結合在一起

var numA = [1,2,3,4,5];
var numB = [6,7,8,9];
var numConcat = numA.concat(numB);
console.log(numConcat);

forEach

與for很像,寫法更簡潔

[].forEach(function(value,index,array){
	//code something
});
value:陣列內容 index:索引值(選填) array:陣列本身(選填)

var num = [1,2,3,4,5];
num.forEach(function(n){
	console.log(n) // 1 2 3 4 5
})
//ES6簡寫
var num = [1,2,3,4,5];
num.forEach(item => {
	console.log(item) // 1 2 3 4 5
})

var num = [1,2,3,4,5];
num.forEach((item,index,arr) =>{
	arr[index] = item * 2;
})
console.log(num); //2, 4, 6, 8, 10

上一篇
[用30天了解javascript]Day11.陣列
下一篇
[用30天了解javascript]Day13.物件
系列文
用30天了解javascript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言