数组

数组定义

1,构造方法赋值
内置基本类型与引用类型的内存中存储的异同
内置基本类型:只有一块栈空间,存的就是内容本身
引用类型:有俩块空间,一块是栈空间,一块是堆空间,栈存储的是堆空间的地址,堆存储是真正的内容;
构造方法赋值
new在堆内存开辟空间的关键字
通过new然后按照Array的类型开辟一个数组空间
数组元素的访问
数组元素的访问规则:
数组名【下标】
下标:从0开始,且为连续的自然数,下标可以为变量。

数组元素的遍历

  1. for(var i=0; i<arr.length; i++){
  2. arr[i] += 10;
  3. console.log(arr[i]);
  4. }

数组的逆序

  1. var arr = [6,7,5,8,4,9,3,0,2,1];
  2. function reverse(arr){
  3. var n = arr.length;
  4. var t;
  5. for(var i=0; i<n/2; i++){
  6. t = arr[i];
  7. arr[i] = arr[n-i-1];
  8. arr[n-i-1] = t;
  9. }
  10. }
  11. reverse(arr);//引用类型传递参数,可以通过被调函数的形参改变主调函数实参的数值
  12. console.log(arr);

数组的常见函数API

  1. push
  2. 功能:尾插
  3. 参数:push(x1,[x2...xn]);
  4. 返回值:返回添加新元素之后数组的长度
  5. var arr = [6,5,7,4,8];
  6. var len = arr.push("heihei","xixi","haha");
  7. console.log(len);
  8. console.log(arr);
  1. pop
  2. 功能:尾删
  3. 参数:无
  4. 返回值:返回删除的那个元素
  5. var arr = [6,5,7,4,8];
  6. var x = arr.pop();
  7. console.log(x);
  8. arr.push(666,777);
  9. console.log(arr);
  1. unshift
  2. 功能:头插
  3. 参数:unshit(x1,[x2...xn]);
  4. 返回值:返回添加新元素之后数组的长度
  5. var arr = [6,5,7,4,8];
  6. var len = arr.unshift("heihei","xixi");
  7. console.log(len);
  8. console.log(arr);
  1. shift
  2. 功能:头删
  3. 参数:无
  4. 返回值:返回删除的那个元素
  5. var arr = [6,5,7,4,8];
  6. console.log(arr.shift());
  7. console.log(arr);
  1. splice
  2. 功能:删除数组的某一部分,[然后用新数据替换]
  3. 参数:splice(起始位置,偏移量,[新数据]);
  4. 返回值:返回删除后的数据
  5. var arr = [6,5,7,8,4,6,7,8,9];
  6. var arr1 = arr.splice(2,2,"嘿嘿","xixi");
  7. console.log(arr1);
  8. console.log(arr);
  1. join
  2. 功能:把数组转换为字符串
  3. 参数:join([分隔符]),默认分隔符为逗号
  4. 返回值:返回转换后的字符串
  5. var arr = [6,5,4,7,8];
  6. console.log(arr.join("嘿嘿"));
  1. slice
  2. 功能:数组元素的截取
  3. 参数:slice(起始位置,结束位置):左闭右开
  4. 返回值:返回被截取的数组元素
  5. var arr = [6,5,4,7,8];
  6. var arr1 = arr.slice(1,3);
  7. console.log(arr1);
  1. concat
  2. 功能:数组的拼接
  3. 参数:concat(数组);
  4. 返回值:被拼接后的数组,对原来俩数组没影响
  5. var arr1 = [1,2,3];
  6. var arr2 = [4,5,6];
  7. var arr3 = arr1.concat(arr2);
  8. console.log(arr3);
  1. reverse
  2. 功能:逆序
  3. 参数:无
  4. 返回值:无
  5. 注意:该方法直接改变原数组
  6. var arr = [1,2,3,4,5];
  7. arr.reverse();
  8. console.log(arr);
  1. 扩展
  2. sort
  3. 功能:排序,默认只能由小到大排字符串
  4. 参数:sort(回调函数)
  5. var arr = [6,5,7,4,8,3,9,11];
  6. arr.sort();
  7. console.log(arr);

多维数组

多为数组就是数组的嵌套;

  1. var arr = [
  2. [1,2],
  3. [3,4,5,6],
  4. [7,8,9]
  5. ];

随机函数

console.log(Math.random());
Math.random,的值是0~1;

冒泡

  1. var arr=[8,4,1,5,4,7,6,2,9,3];
  2. var t;
  3. for(var i=0;i<arr.length-1;i++){
  4. for(var j=0;j<arr.length-i-1;j++){
  5. if(arr[j]<arr[j+1]){
  6. t=arr[j];
  7. arr[j]=arr[j+1];
  8. arr[j+1]=t;
  9. }
  10. }
  11. }

选择排序

  1. var arr=[2,3,4,9,6,8,5,7,0,1];
  2. var t;
  3. var k=0;
  4. for(var i=0;i<arr.length-1;i++){
  5. k=i;
  6. for(var j=i+1;j<arr.length;j++){
  7. if(arr[k]<arr[j]){
  8. k=j;
  9. }
  10. }
  11. t=arr[i];
  12. arr[i]=arr[k];
  13. arr[k]=t;
  14. }
  15. cosole.log(arr)