数组
数组定义
1,构造方法赋值
内置基本类型与引用类型的内存中存储的异同
内置基本类型:只有一块栈空间,存的就是内容本身
引用类型:有俩块空间,一块是栈空间,一块是堆空间,栈存储的是堆空间的地址,堆存储是真正的内容;
构造方法赋值
new在堆内存开辟空间的关键字
通过new然后按照Array的类型开辟一个数组空间
数组元素的访问
数组元素的访问规则:
数组名【下标】
下标:从0开始,且为连续的自然数,下标可以为变量。
数组元素的遍历
for(var i=0; i<arr.length; i++){
arr[i] += 10;
console.log(arr[i]);
}
数组的逆序
var arr = [6,7,5,8,4,9,3,0,2,1];
function reverse(arr){
var n = arr.length;
var t;
for(var i=0; i<n/2; i++){
t = arr[i];
arr[i] = arr[n-i-1];
arr[n-i-1] = t;
}
}
reverse(arr);//引用类型传递参数,可以通过被调函数的形参改变主调函数实参的数值
console.log(arr);
数组的常见函数API
push
功能:尾插
参数:push(x1,[x2...xn]);
返回值:返回添加新元素之后数组的长度
var arr = [6,5,7,4,8];
var len = arr.push("heihei","xixi","haha");
console.log(len);
console.log(arr);
pop
功能:尾删
参数:无
返回值:返回删除的那个元素
var arr = [6,5,7,4,8];
var x = arr.pop();
console.log(x);
arr.push(666,777);
console.log(arr);
unshift
功能:头插
参数:unshit(x1,[x2...xn]);
返回值:返回添加新元素之后数组的长度
var arr = [6,5,7,4,8];
var len = arr.unshift("heihei","xixi");
console.log(len);
console.log(arr);
shift
功能:头删
参数:无
返回值:返回删除的那个元素
var arr = [6,5,7,4,8];
console.log(arr.shift());
console.log(arr);
splice
功能:删除数组的某一部分,[然后用新数据替换]
参数:splice(起始位置,偏移量,[新数据]);
返回值:返回删除后的数据
var arr = [6,5,7,8,4,6,7,8,9];
var arr1 = arr.splice(2,2,"嘿嘿","xixi");
console.log(arr1);
console.log(arr);
join
功能:把数组转换为字符串
参数:join([分隔符]),默认分隔符为逗号
返回值:返回转换后的字符串
var arr = [6,5,4,7,8];
console.log(arr.join("嘿嘿"));
slice
功能:数组元素的截取
参数:slice(起始位置,结束位置):左闭右开
返回值:返回被截取的数组元素
var arr = [6,5,4,7,8];
var arr1 = arr.slice(1,3);
console.log(arr1);
concat
功能:数组的拼接
参数:concat(数组);
返回值:被拼接后的数组,对原来俩数组没影响
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = arr1.concat(arr2);
console.log(arr3);
reverse
功能:逆序
参数:无
返回值:无
注意:该方法直接改变原数组
var arr = [1,2,3,4,5];
arr.reverse();
console.log(arr);
扩展
sort
功能:排序,默认只能由小到大排字符串
参数:sort(回调函数)
var arr = [6,5,7,4,8,3,9,11];
arr.sort();
console.log(arr);
多维数组
多为数组就是数组的嵌套;
var arr = [
[1,2],
[3,4,5,6],
[7,8,9]
];
随机函数
console.log(Math.random());
Math.random,的值是0~1;
冒泡
var arr=[8,4,1,5,4,7,6,2,9,3];
var t;
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-i-1;j++){
if(arr[j]<arr[j+1]){
t=arr[j];
arr[j]=arr[j+1];
arr[j+1]=t;
}
}
}
选择排序
var arr=[2,3,4,9,6,8,5,7,0,1];
var t;
var k=0;
for(var i=0;i<arr.length-1;i++){
k=i;
for(var j=i+1;j<arr.length;j++){
if(arr[k]<arr[j]){
k=j;
}
}
t=arr[i];
arr[i]=arr[k];
arr[k]=t;
}
cosole.log(arr)