数组
数组定义
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)
