常用数组方法

<!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>

 

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