一、创建数组
1.字面量创建
var arr1 = ["1","2","3"];
console.log(arr1);
2.使用new关键字创建
var arr2 = new Array["1" , "2" , "3"];
console.log(arr2);
3.获取数组中的内容 数组[下标] 下标是从0开始
console.log(arr1[0]);//"1"
4.通过下标的添加 数组[下标] = 值
arr1[3] = "哈哈";
console.log(arr1);//["1","2","3".'哈哈']
5.注意事项
(1):使用new关键字创建数组的时候 如果创建元素只有1个并且是number类型,意味着创建length值为n的空属性
var arr3 = new Array(3);
console.log(arr3);//[empty *3]
(2):arr1.属性名 = 属性值
arr1.name = "zs";
console.log(arr1.name);
二、数据分类依据
type数据类型:数据结构比较单一,数据是存储在变量中的
number类型的数据 number
string类型的数据 string
boolean类型的数据 boolean
undefined类型的数据 undefined
null类型的数据 object
复杂数据类型:数据的结构比较复杂 变量中存储的是 内存地址 内存地址才会指向数据,如果共用一个内存地址,会出现一改全改的问题
objict类型数据 object
array类型的数据 object
function函数 function
1.基本数据
例如:
var a = 10;
var b = a;
b = 20;
console.log(a,b)//10,20
2.复杂数据类型
例如:
var arr1 = ["嘻嘻" , "哈哈" , "呵呵"];
var arr2 = "滴滴滴滴";
console.log(arr1 , arr2);// ["嘻嘻" , "哈哈" , "滴滴滴滴"] ["嘻嘻" , "哈哈" , "滴滴滴滴"]
三、深浅拷贝
深浅拷贝问题只针对于复杂数据类型
1.浅拷贝 会出现一些全改的问题
2.深拷贝
通过for循环将arr1中的内容赋值过去
四、数组的方法
length 获取数组的长度
var arr = [1,2,3,4];
console.log(arr.length);//4
添加和删除
添加push() unshift()
删除pop() shift()
1.数组.push() 在数组的尾部添加一个或者多个数据 并且返回最新数组的长度
2.数组.pop 在数组尾部删除一个元素 返回被删除的数据
3.数组.unshift() 在数组的头部添加一个或者多个数据 并且返回最新数组的长度
4.数组.shift() 在数组的头部删除一个元素 返回被删除的数据
5.数组.splice(start,count,items)
删除数组中一串连续的数组元素,被删除的元素会组成一个新的数组返回,使用items替换
start 开始下标 必需 count 删除的个数 items是替换的元素 如果不传count 删除到最后
6.indexof:查找元素在数组中首次出现的位置 如果找到则是返回下标位置 找不到返回-1
7.join和字符串对象中split是搭配使用的
(1)字符串.split(分割标识) 字符串根据分割标识 将数据分割出来并组成一个新的数组
(2)数组.join(组合标识) 数组根据组合标识组成一个新的字符串
8.reverse 反转数组
9.concar 将多个数组或者元素组合成一个新的数组
10.slice(start,end) 截取数组中一连串的元素并且组成一个新的数组返回 包含开始下标不会包含结束下标
五、数组去重
1.indexof去重
indexof:查找元素在数组中首次出现下标的位置 如果找不到则是返回-1
什么时候会将元素push到newArr? 当前这个元素在newArr中找不到会push进去
2.splice去重
当前元素依次和后面做比较 如果相等,就将重复元素删除
六、排序
1.选择排序
拿一个元素一次和后面的元素做比较 如果后面的元素比较少 或交换位置
var arr = [10,0,7,1,41,3,18,5]
for(var i = 0;i <arr.length;i++){
for(var j = i+1; j < arr.length;j++){
if(arr[i] > arr[j]){
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
console.log(arr);
2.冒泡排序
相邻的两个元素进行比较 如果后面的元素比较小就交换位置
for(var i = 0;i <arr.length-1;i++){
// i = 0 1 2 3
for(var j = 0;j <arr.length-1-i;j++){
if(arr[j] > arr[j+1]){
var temp = arr[j];
arr[i] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);