概念:
是一种抽象的,可以用一个区间/范围中安排/放置一个或者多个数据,可以是字符串,可以是数字,各数据之间用逗号(,)间隔.
定义:
let 变量=new Array();
let 变量=[ ];
使用:
let arr=new Array(‘a’,’b’,’c’);
let arr=new Aarray('a','b','c')
console.log(arr)

let arr=[‘a’,’b’,’c’];
let arr=['a','b','c']
console.log(arr)

//此时输出正常
let arr=new Array(5)
console.log(arr)

此时浏览器会解析为5个空字符
let arr=[5]
console.log(arr)

此时依旧会解析为一个字符;
4. 特殊解释:
0为数组的第一个开始,最后一个为length-1,专业名称-下标;
length为数组的长度;
5. 基本操作:
更改数组中的内容:
let arr=['a','b','c','d']
arr[2]='2'
console.log(arr)

通过下标可以更改数组的内容;
删除数组中的内容
let arr=['a','b','c','d']
delete arr[1]
console.log(arr)

下边为1 的内容被删除,其他下标不变,长度也不会发生变化;
遍历数组:
遍历方式一:建议使用此方法
let arr = ["a","b","c","d"];
for(var x in arr){ //x为定义的变量
console.log(arr[x]);//输出数组中所有数据
}
空的空间会遍历undefined
遍历方法二
var arr = ['a','b','c'];
arr[length] = 'd'
console.log(arr);
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
6.基础类型:
[number/string/boolean/undefined/null]
存储类型:基础类型将值存在栈内存中;
基础类型赋值时,将值复制给另一个变量,修改其一不影响其二;
基础类型全等比较的时候,比较类型和值;
7.引用类型:
[]、function, {}
引用类型将值存在堆内存中,将堆内存的内存地址存在栈中;
引用类型赋值时,将栈中的地址复制给别的变量。当改变其中一个变量中的值,另一个变量中的值也会发生改变。
引用类型全等比较的时候比较栈中存的内存地址是否相同。
注意:直接给变量赋值,一定会将变量栈空间中内容清空,然后重新放入新数据
8.数组方法:
unshift - 给数组开头添加一个或多个元素 - 返回数组新长度
var arr = ['a','b','c'];
var l = arr.unshift('d')
console.log(arr) // ['d','a','b','c']
console.log(l) // 4
2.push - 给数组的末尾添加一个或多个元素 - 返回数组新长度
var arr = ['a','b','c'];
var l = arr.push('d')
console.log(arr) // ['a','b','c','d']
console.log(l) // 4
3.shift - 删除数组的第一个元素 - 返回被删掉的元素
var arr = ['a','b','c'];
var ele = arr.shift()
console.log(arr) // ['b','c']
console.log(ele) // 'a'
4.pop - 删除数组最后一个元素 - 返回被删掉的元素
var arr = ['a','b','c'];
var ele = arr.pop()
console.log(arr) // ['a','b']
console.log(ele) // 'c'
5.splice - 对数组做增、删、改的操作
var arr = ['a','b','c']
// 改 - 参数1:开始下标;参数2:删除的个数;参数3:在删除的位置放上的新的元素 - 可以是多个
arr.splice(1,1,'d') // ['a','d','c']
// 增
arr.splice(1,0,'d') // ['a','d','b','c'] - 删除0个,就是不删除,然后放上新元素
// 删 - 第三个参数可以省略
arr.splice(1,0) // ['a','c']
6.concat - 数组的拼接
var arr = ['a','b','c'];
var brr = ['d','e','f'];
// 将arr和brr合成一个更大的数组
var crr = arr.concat(brr) // ['a','b','c','d','e','f']
// 将一个或多个值和数组合并成一个大数组
var crr = arr.concat(1,2,3)// ['a','b','c',1,2,3]
7.sort - 数组的排序
var arr = [9,5,3,7,1,6,4,8,2];
arr.sort() // 默认升序
console.log(arr) // [1,2,3,4,5,6,7,8,9]
arr.sort(function(a,b){ // a代表前面的数,b代表后面的数
return a-b; // 升序 - 如果前面的数-后面的数>0,则交换位置
return b-a; // 降序 - 如果后面的数-前面的数>0,则交换位置
})
8.reverse - 数组的反转
var arr = ['a','b','c'];
arr.reverse()
console.log(arr) // ['c','b','a']
9.join - 将数组中的元素使用指定的连接符连接在一起
var arr = ['a','b','c'];
var str = arr.join('_') // 参数是连接符
console.log(str) // a_b_c
var str = arr.join() // 默认使用逗号连接
console.log(str) // a,b,c
var str = arr.join('')
console.log(str) // abc
10.slice - 截取数组
var arr = ['a','b','c','d','e','f'];
// 将数组中的 'b','c','d'截取出来,组成新的数组
var brr = arr.slice(1,4)
// 参数1是开始截取的下标,参数2是截取的结束下标,结果中不包含结束下标对应的元素
console.log(brr) // ['b','c','d']
// 如果省略第2个参数,默认从开始下标截取到数组末尾
var crr = arr.slice(1)console.log(crr) // ['b','c','d','e','f']
11.indexOf方法:查找某个元素在数组中第一次出现的位置
var arr = [1,3,5,7,7,5,3,1];
console.log(arr.indexOf(5)); // 2 - 查找数字5在数组中第一次出现的下标
console.log(arr.lastIndexOf(5)); // 5 - 查找数字5在数组中最后一次出现的位置
console.log(arr.indexOf(5,3)); // 5 - 从下标2开始查找数字5在数组中第一次出现的位置
console.log(arr.lastIndexOf(5,4)); // 2 - 从下标4开始查找数字5在数组中最后一次出现的下标
console.log(arr.indexOf("5")); // -1 - 数组中全是数字,找不到字符串5,所以返回-1
12.forEach方法:用于遍历数组
var arr = [1, 2, 3, 4, 5];
arr.forEach(function(x, index, a){
console.log(x + '|' + index + '|' + (a === arr));
});
13.map方法:遍历数组,并将每个元素经过函数处理后,形成新的元素,所有新元素组成新数组返回
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
return item*item;
});
console.log(arr2); //[1, 4, 9, 16, 25]
14.filter方法:将数组中满足指定条件的值,组成新的数组返回
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(v, index) {
return v>5
});
console.log(arr2); //[6, 7, 8, 9, 10]
15.reduce方法:用于数组求和
arr.reduce(function(a, b){
return a + b
});
16.some - 判断数组中是否至少有一个元素是满足指定条件的,返回布尔值
var arr = [68,95,78,56,86,63];
var bool = arr.some(function(v,i,a){
return v<60;
});
console.log(bool); // true
17.every - 判断数组中是否所有元素都满足指定的条件,返回布尔值
var arr = [68,95,78,56,86,63];
var bool = arr.some(function(v,i,a){
return v>60;
});
console.log(bool); // false
18.find - 查找数组中第一个满足指定条件的值,找到返回值,找不到返回undefined
var arr = [68,95,78,56,86,63];
var ele = arr.find(function(v,i,a){
return v<60
})
console.log(ele); // 56
19.findIndex - 查找数组中满足条件的第一个对应的下标,找到返回下标,找不到返回-1
var arr = [68,95,78,56,86,63];
var index = arr.find(function(v,i,a){
return v<60
})
console.log(index); // 3