常用數組方法

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>數組常用方法</title>
</head>

<body>
</body>

</html>
<script>
var arr1 = [1, 2, 3, 4];

// push:向數組末尾添加一個或多個元素
arr1.push(66, 77, 88);
console.log(arr1);

//pop:刪除數組末尾一個元素
arr1.pop();
console.log(arr1)

//unshift:向數組頭部添加一個或多個元素
arr1.unshift(-1,0);
console.log(arr1)

//shift:刪除數組第一個元素
arr1.shift();
console.log(arr1);


//concat:合併兩個或多個數組,生成一個新數組,原數組不變
var arr2 = ['a','b','c'];
var arr3 = ['z','x','y'];
console.log(arr1.concat(arr2,arr3));

//join:將數組轉成字符串,默認逗號分隔
console.log(arr1.join());
console.log(arr1.join('-'));
console.log(arr1.join('&'));

// reverse 將數組倒序,原數組不變
arr1.reverse();
console.log(arr1)

// sort 對數組進行排序,按照UniCode碼排序,原數組改變、 (ES6)
// 從小到大
var sortNum = function(a,b) {
	return a-b;
};
console.log(arr1.sort(sortNum));

// 從大到小
arr1.sort((a,b)=>{
	return b-a;
});
console.log(arr1);

// 按照數組對象中的值進行排序
var list = [
	{name:"小明",age:'21'},
	{name:"小紅",age:'18'},
	{name:"小張",age:'26'}
];
function compare(param) {
	return function sortAge(a,b){
		return a[param] - b[param];
	};
};
console.log(list.sort(compare('age')));

// map原數組的每一項執行函數後,返回一個新數組 (ES6)
var mapArr = arr1.map((item,index)=>{
	return item - 1;
});
console.log(mapArr);

// forEach (ES6)
// 和map區別,同樣寫法forEach返回值爲undefined
var eachList = arr1.forEach((item,index)=>{
	return item-1
});
console.log('forEach')
console.log(eachList)

// splice 
// 第一個參數從第幾位開始刪
// 第二個參數刪除幾個
// 第三個參數從刪除的位置添加
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 2, "Lemon", "Kiwi");
console.log(fruits)

// slice
// 從第幾個開始截取,截到第幾個
console.log(fruits.slice(2,4));

// filter根據條件做過濾 (ES6)
var arrFilter = arr1.filter((x)=>{
	return x > 4;
});
console.log(arrFilter); //[77,66]

// every對數組中每一項做判斷 (ES6)
// 都符合返回true,否則返回false
var arr2 = [11,22,33,44,55,66]
var everyArr = arr2.every((item,index)=>{
	// console.log(item);//11
	// return item < 66;  //false
	return item < 69;  //true
});
console.log(everyArr);

// some只要有一個符合條件就返回true,否則false (ES6)
var arr2 = [11,22,33,44,55,66]
var someArr = arr2.some((item,index)=>{
	return item < 22;  //true
});
console.log(someArr);

// reduce累加器  (ES6)
// 每次循環出的值會累加,累加之後的值會在加新循環出的值
var reduceArr = arr2.reduce((a,b)=>{
	return a + b;
});
console.log(reduceArr)

// indexOf查找某個元素的索引值,若有重複的,則返回第一個查到的索引值若不存在,則返回 -1
console.log(arr2.indexOf(66));  //返回的對應索引值
console.log(arr2.indexOf(69));  //爲查找到該元素 返回-1


// of 將一組值轉成數組 (ES6)
var str = '11,22';
console.log(Array.of(str));

//includes 驗證數組是否存在該值,有返回true,無返回false 
console.log(fruits.includes('Orange'));

// arr.keys() 遍歷數組的鍵名

// arr.values() 遍歷數組鍵值
// arr.entries() 遍歷數組的鍵名和鍵值


// es6去重並排序
const myArray = [1,6,2,2,3,3,4,4,5,5]
console.log([...new Set(myArray )].sort());// [1, 2, 3, 4, 5]

function dedupe(array) {
  return Array.from(new Set(myArray));
}
let de = dedupe([1, 1, 2, 3]) // [1, 2, 3]
console.log(de.sort());
</script>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章