1、数组的概念
数组,是指一组数据的集合,其中每个数据被称为元素,数据中心可以存放任意的元素。
数组是一种将一组数据存储在单个变量下的方式。
2、创建数组的两种方式
1、利用数组字面量
var arr=[1,2,3];
2、利用new Array(3)创建数组(里边有三个空的元素)
new arr=new Array();
new arr=new Array(3);
注意:数组名【下标(下标从0开始)】
数组可以通过索引(下标)来访问、设置、修改对应的数组元素
3、数组方法
1、向数组的末尾添加一个或多个元素
var arr=['一','二','三','四'];
var newArrayLength=arr push('五','六');
console.log(arr);
console.log('新的数组长度'+newArrayLength);
2、删除并返回数组的最后一个元素
var arr=['一','二','三','四'];
var lstArr = arr.pop();
console.log(arr);
console.log('被删除的元素:'+lstArr);
3、向数组的开头添加一个或多个元素,并返回新的数组长度。
var arr=['一','二','三','四'];
var newArrayLength = arr.unshift('五', '六');
console.log(arr);
console.log('新的数组长度' + newArrayLength);
4、删除数组中的一个元素,并返回删除的元素。
var arr=['一','二','三','四'];
var fstArr = arr.shift();
console.log(arr);
console.log('被删除的元素:'+fstArr);
5、判断当前对象是不是数组。
var arr=['一','二','三','四'];
arr ='这是一个数组吗?';
alert(Array.isArray(arr));
6、map方法返回一个新的数组,数组中的元素为原始数组的处理后的值
map 方法会按照原始数组中的元素顺序依次处理元素
let array = [1,9,3,7,5];
let newArray = array.map(x=>x+2);
console.log(array);
console.log(newArray);
7、filter 方法创建一个数组,新的数组中的元素是通过检查指定数组中符合条件的元素
filter:不会得空的数组进行检测;不会改变原始数组。
let array = [1,2,3,4,5];
let newArray = array.filter(item=> item > 2);
console.log(array);
console.log(newArray);
8、some 用于检测数组中的元素是否满足指定的条件,会依次执行数组中每个元素
如果有一个元素满足要求,则返回true;如果没有满足条件的元素,返回false。
let array = [1,2,3,4,5];
let newArray = array.some(item => item>2);
console.log(array);
console.log(newArray);
9、splice 用于添加或者删除数组中的元素 ,.splice(开始下标,长度);
注意:这个方法会改变原始数组。如果没有删除任何数组,则返回空数组。
let array = [1,2,3,4,5,6,7,8,9];
let newArray = array.splice(2,4);
//替换下标4的元素为 6,7
let newArray = array.splice(4,1,6,7);
//在下标9的位置 插入元素 10,11
let newArray = array.splice(9,0,10,11);
console.log(array);
console.log(newArray);
10、slice方法可以从已有数组重返回选定的元素
可以提取字符串,并返新的字符串被提取的部分(不会改变原数组)
let array = [1,2,3,4,5,6,7,8,9];
let newArray =array.slice(1,4);
let newArray =array.slice(-3,-1);
console.log(array);
console.log(newArray);
11、indexOf 方法可以返回某个字符串在字符串中出现的位置
如果没有,则返回-1,如果存在,则返回下标
var str = '你今天中午吃了什么?';
var index = str.indexOf('了');
console.log(index)
let array = [1,2,3,4,5,6,7,8,9];
let index = array.indexOf(4);
console.log(index)
12、includes 用于判断数组中是否包含了一个指定的值
如果有返回true,否:false
let array = [1,2,3,4,5,6,7,8,9];
let bool = array.includes(1);
console.log(bool)
4、数组元素新增
1、新增数组元素,修改length长度
var arr = ['red','green','blue'];
console.log("数组长度:"+arr.length);
arr.length = 5;
console.log(arr);
console.log(arr[3]);
console.log(arr[4]);
arr[3] ='pink';
arr[4] = 'hotpink';
console.log(arr[3]);
console.log(arr[4]);
arr[0] = 'yellow'
console.log(arr[0]);
arr[5] = 'yellow';
console.log(arr);
arr = '有点意思';
console.log(arr);
注:指定长度为5,新增下标为5,意味着数组长度扩展到了6位。
Javascript数组长度是动态的。
不能给数组名赋值,否则数组会被覆盖。
5、数组筛选
1、筛选数组
var arr=[***];
var newArr = [];
var index = 0;
for (let i = 0; i <arr.length ; i++) {
if(arr[i]>=10){
newArr[index] = arr[i];
index++;
}
}
console.log(newArr);
2、获取最大值最小值
var arr=[***];
let max = arr[0];
let min = arr[0];
for (let i = 0; i < arr.length; i++) {
if(max < arr[i] ){
max = arr[i];
}
if(min > arr[i] ){
min = arr[i];
}
}
console.log('最大值:'+max+',最小值:'+min);
3、翻转数组
for (let i = arr.length-1; i >=0 ; i--) {
console.log(arr[i]);
4、数组排序
var ascArr = arr.sort((a, b) => {
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
});
console.log(ascArr);
5、冒泡排序 下沉算法
for (let i = 0; i < numArr.length-1; i++) {
for (let j = 0; j < numArr.length-i-1; j++) {
// 前一个元素 和 后一个元素 比较
// 如果前一个元素 大于后一个元素 两者交换位置
if(numArr[j] >numArr[j+1]){
var temp = numArr[j];
numArr[j] = numArr[j+1];
numArr[j+1] = temp;
}
}
}
console.log(numArr)