前端-JS数组

数组

概念:javascript中的数组(Array) 与其他语言中的数组是有很大区别的,js中的数组 可以存放任意的数据类型,数组的大小也是随着元
素的增加动态增加的。

1.创建数组的几种方式

*采用Array构造函数
//基本用法
let colors = new Array();

//也可以直接指定数组的长度
let colors  = new Array(20);  //指定了一个长度为20的数组 

//也可以直接写数组的元素
let colors  = new Array("red","yellow","white");
*采用数组字面量的方式创建数组

let arr  = ['red','yellow','green'];

//调用方式
let result1 = arr[0];
let result2 = arr[1];

//多种类型元素的数组

let arr = ['鲁班',18,false];

//访问数组
console.log(arr[0]);

//数组长度
let arr = [1,2,3,4,5,7,8];

console.log(arr.length);
//手动设置数组长度,会删除超出长度的元素
arr.length = 4;



//手动插入一条数据
  arr[7] = 9;


//替换数组元素 
  arr[0] = "hahha";

//特殊案例
 arr[15]  = "hahh";   //数组会自动扩容  //插入一条超出长度的索引的值
console.log(arr[9]);   //改索引值对应的只不存在 就会返回undefined;




2.遍历数组

let colors  = ['red','green','yellow','white'];
//利用for循环遍历数组
for(let i = 0;i<colors.length;i++){
    console.log("我最喜欢的颜色是:"+colors[i]);
}

案例1:求数组元素中的最大值?

 let arr = [1,5,3,8,10,12];
 let maxitem = arr[0];   //假设第一个是最大值;

  for(let i = 0; i<arr.length; i++){
        if(arr[i]>maxitem){
            maxitem = arr[i];
        }
  }

  console.log(maxitem);

案列2:数组筛选

//数组筛选
//错误的写法
let arr  = [1,3,15,17,21,7,8,29,40];
let newArr = [];

//要求 筛选出>10的值 并且放到一个新数组里面;

for(let i = 0;i<arr.length;i++){
     if(arr[i]>10){
         newArr[i] = arr[i];
         
     }
}

console.log(newArr);




//正确的写法
let arr  = [1,3,15,17,21,7,8,29,40];
let newArr = [];
let j = 0;
//要求 筛选出>10的值 并且放到一个新数组里面;

for(let i = 0;i<arr.length;i++){
     if(arr[i]>10){
         newArr[j] = arr[i];
         j++;
     }
}

console.log(newArr);


//优雅的写法
//数组筛选
let arr  = [1,3,15,17,21,7,8,29,40];
let newArr = [];

//要求 筛选出>10的值 并且放到一个新数组里面;

for(let i = 0;i<arr.length;i++){
     if(arr[i]>10){
         newArr[newArr.length] = arr[i];
       
     }
}

console.log(newArr);

案例3:翻转数组

 //数组反转
let arr = [1,2,3,4,5,6,7];
let newArr = [];

for(let i = arr.length-1;i>=0;i--){
    newArr[newArr.length] = arr[i];
}

console.log(newArr);

难度升级: 冒泡排序

//冒泡排序

let arr  = [5,4,3,2,1];

for(let i = 0;i<arr.length-1;i++){
    for(let j = 0;j<arr.length-i-1;j++){
          if(arr[j]>arr[j+1]){
              let temp = arr[j];
              arr[j] = arr[j+1];
              arr[j+1] = temp;
          }
    }
}

console.log(arr);

3.二维数组

//基本使用
let arr = [
         [0,1,2],
         ['鲁班','鲁班七号'],
         [0,1,2,3,4,5],
      ];

console.log(arr[1][1]);


//循环遍历二维数组
    let arr = [
         [0,1,2],
         ['鲁班','鲁班七号'],
         [0,1,2,4,5,6]
      ];

    for(let i = 0;i<arr.length;i++){
        for(let j = 0;j<arr[i].length;j++){
            console.log(arr[i][j]);
        }
    }


4.拓展知识点

//遍历数组

let arr = ["鲁班",20,"coder"];

for(let value of arr){
    console.log(value);
}

作业:

把所有的demo演示一遍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值