JS第十一讲--内置对象(中)

第四部分:数组对象

(一)数组创建的两种方式

  1. 通过字面量创建

    var arr=[1,2,3];
  2. new Array

    var arr=new Array(); //构造函数创建
    var arr1=new Array(2); //创建一个长度为2的空数组
    var arr2=new Array(1,2,3) //如果不止放了一个元素,则表示里面存放了元素

(二)检测变量是否为数组

有两种方法:

  1. instanceof运算符,可以检测是否为数组

    var arr=[];
    var obj={};
    console.log(arr instanceof Array);
    console.log(obj instanceof Array);

  1. Array.isArray方法

    var arr=[];
    var obj={};
    console.log(Array.isArray(arr)); //将要判断类型的变量作为参数传进去
    console.log(Array.isArray(obj));

    H5新增的,过低的浏览器版本不支持本方法.

(三)增删数组元素

有4个方法添加或删除元素:

  1. push(num1,num2...): 在原数组末尾添加1各或多个元素,修改的是原数组. 返回值为新的数组长度

    目的:给数组追加新的元素.

    var arr=[1,2,3];
    arr.push(4,5,6);
    console.log(arr); //输出为[1,2,3,4,5,6]
  2. pop(): 删除数组最后一个元素,并把数组长度-1,无参数,修改的是原数组. 返回值为它删除的元素的值

    var arr=[1,2,3];
    arr.pop();
    console.log(arr); //输出为[1,2]
  3. unshift(num1,num2,...): 向数组的开头添加1个或多个元素,修改的是原数组. 返回值为新的数组长度.

    var arr=[1,2,3];
    arr.unshift(4,5,6);
    console.log(arr); //输出为[4,5,6,1,2,3]
  4. shift(): 删除数组的第一个元素,数组长度-1,无参数,修改的是原数组的值. 返回值为第一个元素的值

    var arr=[1,2,3];
    arr.shift();
    console.log(arr); //输出为[2,3]

案例:筛选数组

有一个数组[1500,1200,2000,2100,1800],要求将数组中工资超过2000的删除,剩余的放到新数组里面.

var arr=[1500,1200,2000,2100,1800];
function delete(arr){
    var newArr=[];
    for(var i=0;i<arr.length;i++){
        if(arr[i]<2000) newArr.push(arr[i]);
    }
    return newArr;
}
console.log(delete(arr));

(四)数组排序

两种方法:

  1. reserve(): 颠倒数组中元素的顺序,无参数.会改变原来的数组,返回新数组

    var arr=[1,2,3,4,5];
    arr.reverse();
    console.log(arr);
  2. sort(): 对数组元素进行排序. 会改变原来的数组,返回新数组.

    var arr=[3,4,5,2,8,1,4,2];
    arr.sort();
    console.log(arr);

    如果是1位数,可以正常排序.如果是多位数,会先排第一位,再排第二位,如:

    var arr=[13,4,7,77,1];
    arr.sort();
    console.log(arr);

    排序结果为:[1,13,4,7,77]

    如果想要正常的排序结果,有一种固定写法:

    var arr=[13,4,7,77,1];
    arr.sort(function(a,b){
        return a-b;
    });
    console.log(arr);

    没什么含义,固定写法,这么写就能实现真正的冒泡.

    现在是升序排序,如果是b-a,就是降序排序

(五)获取数组元素索引

数组索引方法:

  1. indexOf():在数组中查找给定元素的第一个索引,如果找到,返回索引号,如果没找到,返回-1

    arr=[1,2,3,4,5];
    console.log(arr.indexOf(2));
  2. lastIndexOf():在数组中查找给定元素最后一次出现的索引,如果找到,返回索引号;如果没找到,返回-1.

    arr=[1,2,3,4,5];
    console.log(arr.lastIndexOf(2));

案例:有一个数组['c','a','z','a','x','a','x','c','b'],要求去掉其中重复的元素.

核心思想:遍历旧数组,用旧数组的元素查找新数组,如果新数组里有,就不添加,如果没有就加进去.

var arr=['c','a','z','a','x','a','x','c','b'];
var newArr=[];
for(var i=0;i<arr.length;i++){
    var x=arr[i];
    if(newArr.indexOf(x)==-1) newArr[newArr.length]=x;
}
console.log(newArr);

(六)数组转字符串

两个方法:

  1. toString():把数组转换成字符串,逗号分隔每一项. 返回值为一个字符串

    var arr=[1,2,3];
    console.log(arr.toString());
  2. join('分隔符'):把数组中的所有元素转换成字符串,中间添加自己所写的分隔符. 返回值为一个字符串

    var arr[1,2,3];
    console.log(arr.join('.'));
    //输出:1.2.3

另:字符串常用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值