数组
定义:一组数据的集合,其表现形式就是内存中的一段连续的内存地址。
可以批量存储数据(上限:232-1)
特点:有下标 有长度 按照一定的结构顺序存储,便于查询。
<script>
var a = [18,"xy",,];//length = 3;
var arr = [18,"xy",,19];//length = 4; 稀疏数组
var arr1 = [18,"xy",];//length = 2;
var arr2 = [];
arr2[0] = 'xy';
console.log(arr1);//[18,"xy"]
console.log(arr2[5]);//undefined
</script>
length属性 ⇒ 可写
indexOf ⇒ 下标 判断是否存在此数据
面试题: 数组去重+排序 indexOf() ⇒ 查到返回下标,否则返回-1
数组声明的方式:
<script>
//1
var arr1=["xy",1,23,34,12];
arr[0] = 18;
console.log(arr);//18
console.log(length,arr.length,arr[arr.length-1],arr[arr.length]);//0,5,12,undefined
//2、关键字
var arr2 = Array(2)//声明数组的空间个数
//在JS中的内置对象 首字母是大写
arr2[0] = 3;
console.log(arr2);//3
//3、
var arr3 = new Array();//不建议使用此方式
//声明并赋值?
var arr4 = Array([12,13,14]);//二维数组
var arr5 = Array(12,13,14);//当只写一个数字的时候,默认为空间个数;当传入多个数值时,意为给数组填入元素
console.log(arr4[0]);//12,13,14
//arr4 = arr6;
var arr6 = [[12,13,14],13]//二维数组
//indexOf(放数组的元素(值)) ⇒ 返回的是索引,或-1
console.log(arr6.indexOf(1));//返回-1
console.log(arr6.indexOf(13));//返回1(13的下标)
console.log(arr6.indexOf(arr6[0]));//返回0
var arr7 = [[12],[13],[14]];//二维
console.log(arr[0][0]);//12
console.log(arr[0,1]);//1会覆盖前面的数,只识别最后一位,和arr[1]作用相同;
var arr8 = [[[12]],[13],14];
</script>
<script>
var arr = [12,13,14];
var arr1 = arr;//引用类型 赋的是地址,同时指向内容,修改一个会影响另一个
arr.length = 1;
console.log(arr1[1],arr[1]);//undefined undefined
</script>
API 数组对象封装好的方法
数组:大的存储空间 增删改查
push()、pop()、shift()、unshift() 两端增删 会改变原数组
slice() 指定位置的截取
splice() 指定位置 增 删 改
join() 连接
concat() 拼接
sort()、reverse() 排序
<script>
//复制数组
var arr = [12,13,14];
var test = [];
test = arr.slice();
//test = arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3,左闭右开
//test = arr.slice(1);//13,14
//test = arr.slice(2);//14
console.log(test);
</script>
<script>
//数组的增删改查操作
var arr = [0,1,2,3,4,5,6,7,8,9];
var arr1 = ["str","st"];
console.log(arr1.sort());//["st", "str"]
//测的所有语句独立执行,不互相影响(即每次单独执行一句)
//增
//arr.push();//不变
//arr.push('');
//arr.push(' ');
//arr.push(10,11,12,13);//[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
//arr.unshift(-2,-1,0);//[-2, -1, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
//var a = arr.concat([10,11,12]);//[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
//arr.splice(0,0,"he");// ["he", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
//删
//arr.pop().pop().pop();
//arr.pop();//[0, 1, 2, 3, 4, 5, 6, 7, 8]
//arr.shift();//[1, 2, 3, 4, 5, 6, 7, 8, 9]
//var a = arr.slice(3,6);//[3, 4, 5]
//arr.splice(3,3);//3,4,5被裁剪[0, 1, 2, 6, 7, 8, 9]
//改
//arr.splice(3,1,33);//[0, 1, 2, 33, 4, 5, 6, 7, 8, 9]
console.log(arr);
</script>
添加 返回的是数组的长度
删除 返回的是删除的内容