(一)使用 Array 构造函数:
var arr1 = new Array(); //创建一个空数组
var arr2 = new Array(20); // 创建一个包含20项的数组
var arr3 = new Array("jack","lucy","Tom"); // 创建一个包含3个字符串的数组
(二)使用数组字面量表示法:
var arr4 = []; //创建一个空数组
var arr5 = [20]; // 创建一个包含1项的数组
var arr6 = ["lily","lucy","Tom"]; // 创建一个包含3个字符串的数组
数组的方法有数组原型方法,也有从object对象继承来的方法,这里我们只介绍数组的原型方法,数组原型方法主要有以下这些:
join() //切割数组转为字符串
push() //可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
pop() //数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。
shift() //删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 。
unshift() //将参数添加到原数组开头,并返回数组的长度 。
sort() //按升序排列数组项——即最小的值位于最前面,最大的值排在最后面。
reverse() //反转数组项的顺序。
concat() //将参数添加到原数组中。这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat()方法传递参数的情况下,它只是复制当前数组并返回副本。
slice() //返回从原数组中指定开始下标到结束下标之间的项组成的新数组。slice()方法可以接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下, slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。
splice() //很强大的数组方法,它有很多种用法,可以实现删除、插入和替换。
indexOf() //接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的开头(位置 0)开始向后查找。
lastIndexOf() (ES5新增)//接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。
forEach() (ES5新增)//对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。参数都是function类型,默认有传参,参数分别为:遍历的数组内容;第对应的数组索引,数组本身。
map() (ES5新增)//指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
filter() (ES5新增)//“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
every() (ES5新增)//判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。
some() (ES5新增)//判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
reduce() //reduce()方法从数组的第一项开始,逐个遍历到最后。
reduceRight() (ES5新增)//而 reduceRight()则从数组的最后一项开始,向前遍历到第一项。
数组去重的方法
//ES6中的new Set方法
var arr = [1,1,1,2,34,5,6,5,6,2,1]
console.log(arr) //去重前
arr = [...new Set(arr)]
console.log(arr) //去重后
// 1. 完成一个简单的数组去重
// 2. 封装成一个函数,完成数组去重
// 3. 返回去重后的结果
// 数组for循环
// indexOf() 如果找不到返回-1
// push() 数组中追加元素
// 函数的封装,传参,以及返回结果
//2.完成函数的封装
function romoval(arr1) {
//定义一个空数组用来存储去重后的结果
var arr = [];
//遍历数组中的所有元素
for(var i = 0; i < arr1.length; i++) {
//判断arr数组中是否有当前遍历的元素出现
//如果 arr里面没有当前遍历的元素的话
if(arr.indexOf(arr1[i]) == -1) {
arr.push(arr1[i]); //空数组中添加元素
}
}
//console.log(arr);
return arr;
}
//定义要去重的数组
var arr1 = [1, 2, 3, 'a', 'f', 2, 'b', 'c', 'a', 'f', 4];
//完成函数封装后进行函数的调用
var Arr1 = romoval(arr1);
console.log(Arr1);
var arr2 = [1,3,5,7,2,3,7,9];
romoval(arr2);
数组的排序
**方法一**
//降序
var arr =[1,1,1,2,3,4,653,233,11]
arr.sort((a, b) => {
return a - b
})
console.log(arr)
//升序
arr.sort((a, b) => {
return b - a
})
console.log(arr)
// **方法二**
//冒泡排序的方法
var arr = [12,2,4,3,18,5];
//外层循环,循环遍历所有的值
for(var i=0;i<arr.length; i++){
//内层循环,从当前元素下一个元素开始循环比较,取决于当前i循环到的值
for(var j = i+1; j<arr.length; j++){
//i下标对应的值和j下标对应的值进行比较
if(arr[i] > arr[j]){
//数组前面的元素大于后面的元素,交换位置
var tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
console.log(arr);//打印数组的值
**方法三**
//sort() 方法
var arr = [12,2,4,3,18,5];
//自定义的排序方法
function px(a,b){
return a-b; //降
//return b-a; 升
}
var arr = arr.sort(px);
console.log(arr);