js-数组

js数组-02

数组的使用

script中的数组下标和值可以理解成键值对

数组声明

一维数组
var nums = [1,2,3,4,5];
下标也是从0开始
二维数组
var arr =[ [1,2,3], [1,2,3,4,5], [1,54] ];

数组操作

属性和Java中类似

//控制台显示指定元素
console.log(nums[0]);
//length是数组长度
console.log(nums[nums.length-1]);//最后一位

//写入
nums [2]=33;
nums[20]=2;
// 中间没有添加数值的全部是空 

//删除通过更改length
nums.length = 3;
//还可以用pop();删除最后一个元素
nums.pop();
//尾部添加
nums.push('a')
//头部添加
nums.unshift(2);
//头部删除
nums.shift(2);
//反转
nums.reverse();
//按ASCII码排序
nums.sort();
//数组清空
nums=[];

nums.length=0;

nums.splice(0,length);//(要删除位下标,删几个)


数组遍历

  1. for循环
for(var=i;i<nums.length;i++){//i是对应的下标,不过是字符串类型的
console.log(nums[i]);
}
  1. for in
for(var i in nums){
console.log(nums[i]);
}
  1. 二维数组遍历
for(var i = 0 ; i< arr.length;i++){
    for(var j =0;j< arr[i].length;j++ ){
console.log(arr[i][j]);
}
}

for( var i in arr){

    for(var j in arr[i]){
        console.log(arr[i][j]);
    }
}

数组去重

  // 数组
        var arr = [1,1,1,2,8,4,5,5,5,4];
        // 空对象
        var obj = [];
        // 遍历数组
        for (let index = 0; index < arr.length; index++) {
            // 获取数组中每位数据
           console.log(arr[index]);
           var element = arr[index];
           // 把ARR的数据[1,1,1,2,8,4,5,5,5,4]作为对象obj的属性key 进行保存 , 后续我们再操作它的属性即可
            obj[ element ] = 1;
        }
        console.log(obj);
        // 创建新数组
        var newArr = [];
        // 遍历对象
        for (key in obj) {
            // 获取每一个属性
            // 把属性保存到新数组中
            console.log(key);
            newArr.push(key);
        }
        console.log(newArr);

array 对象

// 字面量
        var arr1 = [1,2,34];
        // new
        var arr2 = new Array(2,5,1);
        // 判断是否是数组 instanceof 或 isArray
        console.log(arr1 instanceof Array);
        console.log(Array.isArray(arr2));

        // push 尾部追加
        arr1.push(1);
        // 尾部删除
        arr1.pop();

        // 头部追加
        arr1.unshift(2);
        // 头部删除
        arr1.shift();

        arr1 = [1,2,3,4];
        // 反转
        arr1.reverse();
        console.log(arr1);

        arr1 = [1,12,11,2];
        // 排序,只会按照ASCII码进行比较
        // 1,11,12,2
        arr1.sort();
        // 12,11,2,1
        arr1.sort(function(a,b){
            // a-b 升序 , b-a 降序
            return b-a;
        });
        // 箭头函数写法
        // 1,2,11,12
        arr1.sort((a,b)=> a-b);
        console.log(arr1);

        // 第一个参数是数据,第二个参数是索引
        arr1.forEach(function(item,index){
            console.log(item,index);
        });
        arr1.forEach((item,index)=>console.log(item,index));

        // filter : 过滤,不符合条件的就不要了
        // 只要偶数
        var arr3 = arr1.filter(function(item,index){
            if(item % 2 == 0){
                return true;
            }else{
                return false;
            }
        });
        console.log(arr3);
        var arr4 = arr1.filter( item=> item%2==1 ? true : false );
        console.log(arr4);

        // map : 更改数组
        var arr = [1,2,3,4,5,6];
        // 数组中 奇数 +10 偶数 +5
       var arr5 = arr.map(function(item){
            if(item % 2 == 0){
                return item+5;
            }else{
                return item+10;
            }
        });
        console.log(arr5);

        var arr6 = arr.map(item=> item % 2 == 0 ? item+5 : item+10 );
        console.log(arr6);

        var arr = [1,2,3,4,5,6,7,8,9];
        // 获取对应数据的索引,找不到返回-1
        console.log(arr.indexOf(21));
        // 获取最后一次出现的索引,找不到返回-1
        console.log(arr.lastIndexOf(3));

        // 数组转字符串
        console.log(arr.join('-'));
        var arr1 = [1,2,3];
        var arr2 = [11,12,13];
        var arr3 = arr1.concat(arr2);
        console.log(arr3);

        // 删除,并返回要删除的数据
        var arr = [1,2,3,4,5];
        arr.splice(2,1);
        console.log(arr);

        arr = [];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值