JavaScript中的数组对象和字符串对象(一)

数组对象

Javascript中的数组对象可以使用new Array或字面量"[ ]"来创建,在创建以后,就可以调用数组对象提供的一些方法来实现对数组的操作了。

1.1数组类型检测

在开发中,有时候需要检测变量的类型是否为数组,例如,在函数中,要求传入的参数必须是一个数组,不能传入其他类型的值,否则会出错,所以这时候可以在函数中检测参数的类型是否为数组,数组类型检测有两种常用的方法,分别是instanceof运算符和使用Array.isArray()方法。

示例代码如下:

<script>
        var arr=[];
        var obj={};
        //第一种方法
        console.log(arr instanceof Array);//输出结果:true
        console.log(obj instanceof Array);//输出结果:false

        //第二种方法
        console.log(Array.isArray(arr));//输出结果:true
        console.log(Array.isArray(obj));//输出结果:false
    </script>

在上述代码中,如果检测结果为true,表示给定的变量是一个数组,如果检测结果为false,则表示给定的变量不是数组

1.2添加或删除数组元素

JavaScript数组对象提供了添加或删除元素的方法,可以实现在数组的末尾或开头添加新的数组元素,或在数组的末尾或开头一处数组元素。

方法名功能描述返回值
push(参数1…)数组末尾添加一个或多个元素,会修改原数组返回数组的新长度
unshift(参数1…)数组开头添加一个或多个元素,会修改原数组返回数组的新长度
pop()删除数组的最后一个元素,若是空数组则返回undefined,会修改原数组返回删除的元素的值
shift()删除数组的第一个元素,若是空数组则返回undefined,会修改原数组返回第一个元素的值
<script>
        //push在末尾添加一个或者多个元素
        var arr=['pink','black','white','yellow']
        console.log(arr.push('red'))//返回的是数组长度,输出结果是:5
        console.log(arr)//修改了原来的数组,输出结果为:["pink", "black", "white", "yellow", "red"]
        console.log('========')

        //unshift在首位添加一个或者多个元素
        var arr1=['pink','black','white','yellow']
        console.log(arr1.unshift('red','green'))//输出结果:6
        console.log(arr1)//修改了原来的数组,输出结果为:["red", "green", "pink", "black", "white", "yellow"]
        console.log('========')

        //pop删除数组的最后一个元素
        var arr2=['pink','black','white','yellow']
        console.log(arr2.pop())//返回的是删除的元素,输出结果:yellow
        console.log(arr2)//修改了原来的数组,输出结果为:["pink", "black", "white"]
        console.log('========')

        //shift删除数组的第一个元素
        var arr3=['pink','black','white','yellow']
        console.log(arr3.shift())//返回的是删除数组的第一个元素,输出结果是:pink
        console.log(arr3)//输出结果是:["black", "white", "yellow"]
        console.log('========')
<script>

1.3【案例】筛选数组

示例代码和结果如下:

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

 1.4数组排序

JavaScript数组对象提供了数组排序方法,可以实现数组元素排序或者颠倒数组元素的顺序。

方法名功能描述
reverse()颠倒数组中元素的位置,该方法会改变原数组,返回新数组的长度
sort()对数组的元素进行排序,该方法会改变原数组,返回新数组的长度
<script>
//reverse反转数组
        var arr5=['red','blue','green']
        arr5.reverse();
        console.log(arr5)
        console.log('====================')

        //数组排序
        //sort:如果调用该方法时没有使用参数,按照字符编码的顺序进行排序
        var arr6=[1,4,5,6,73,32,22,15]
        //不传参数的情况
        console.log(arr6.sort())
        //传参数:参数是用来指定按某种顺序进行排序的函数
        /*
            即a和b是两个将要被比较的元素
        */
        arr6.sort(function (a,b){
            return b-a;//降序
            // return a-b;//升序
        })
        console.log(arr6)
    </script>

1.5数组索引

在开发中,若要查找指定的元素在数组中的位置,则可以利用Array对象提供的索引方法

方法名功能描述
index()返回在数组中可以找到给定值的第一个索引,如果不存在,则返回-1
lastIndexOf()返回指定元素在数组中的最后一个的索引,如果不存在则返回-1
<script>
        //indexOf
        var arr=['ant','bison','camel','duck','bison']
        console.log(arr.indexOf('bison'));//输出结果为:1

        //找到第二个blue的索引
        console.log(arr.indexOf('bison',2));//输出结果为:4
        console.log(arr.indexOf('giraffe'))//输出结果为:-1
         
         //lastIndexof()
         var arr=['Dodo','Tiger','Penguin','Dodo']
         console.log(arr.lastIndexOf('Dodo'))//输出结果:3
         console.log(arr.lastIndexOf('Tiger'))//输出结果:1
    </script>

1.6【案例】 数组去除重复元素

代码和结果如下所示

<script>
        //声明函数
        function unique(arr){
            var newArr=[];
            //遍历数组
            for(var i=0;i<arr.length;i++){
                if(newArr.indexOf(arr[i])=== -1){
                    newArr.push(arr[i])
                }
            }
            return newArr;
        }
        //调用数组
        var res=unique([1,2,3,4,3,2])
        console.log(res)
    </script>

 1.7数组转换为字符串

在开发中,若需要将数组转换为字符串,可以利用数组对象的join()和toString()方法

方法名称功能描述
toString()把数组转换为字符串,逗号分隔每一项
join('分隔符')将数组的所有元素连接到一个字符串中

示例代码如下:

<script>
        //使用toString()
        var arr=['a','b','c'];
        console.log(arr.toString());//输出结果:a,b,c

        //使用join()
        console.log(arr.join());//输出结果:a,b,c
        console.log(arr.join(''));//输出结果:abc
        console.log(arr.join('-'))//输出结果:a-b-c
</script>

注意:join()和toString()方法可将多维数组转为字符串,默认情况下使用逗号连接。不同的是,join()方法可以指定连接数组元素的符号。另外,当数组元素为undefined,null或空数组时,对应的元素会被转换为空字符串

1.8 其他方法

JavaScript还提供了很多其他也比较常用的数组方法。例如,填充数组,连接数组,截取数组元素等

方法名功能描述
fill()用一个固定值填充数组中指定下标范围内的全部元素
splice()数组删除,参数为splice(第几个开始,要删除个数),返回被删除项目的新数组
slice()参数截取,参数为slice(begin,end),返回被截取项目的新数组
concat()连接两个或多个数组,不影响原数组,返回一个新数组

示例代码:

<script>
        var arr=['sky','wind','snow','sun'];
        //从索引为2的位置开始,删除2个元素
        arr.splice(2,2);
        console.log(arr);//输出结果:["sky", "wind"]
        //从索引为1的位置开始,删除2个元素,再添加snow元素
        arr.splice(1,1,'snow');
        console.log(arr);//输出结果:["sky", "snow"]
        //从索引为1的位置开始,添加数组元素
        arr.splice(1,0,'hail','sun');
        console.log(arr);//输出结果:["sky", "hail", "sun", "snow"]
    </script>

在上述代码中,splice( 方法的第1个参数用于指定添加或删除的下标位置;第2个参数用于从指定下标位置开始,删除数组元素的个数,将其设置为0,则表示该方法只添加元素;剩余的参数表示要添加的数组元素,若省略则表示删除元素。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值