首页 > 代码库 > 几道笔试题回顾

几道笔试题回顾

一、数组去重

     昨天笔试的时候,发现js中的数据类型的方法用的不熟,还是平时练习少了,看了高程做了笔记还是没有记住。数组类型中的方法和字符串中的方法都记混了。

   对数组的操作总结如下:

   对数组无非就是要对数组进行元素的遍历、增加、删除、修改、插入、排序、查找(通过下标获取指定元素),对数组进行拼接、截取。  

         遍历: 直接采用for循环遍历;

         添加元素: push(value,value...)(在数组末尾添加)、unshift(value,value...)(在数组前面添加)

                       (这两个方法都返回新数组);

         删除元素: pop()(删除数组最后一个元素)、shift(删除数组第一个元素),

                        splice(index,count)(从指定位置的数组元素开始删除,删除count个元素)

                       (这三个方法都返回的都是删除的元素);             

        修改数组中某个元素的值并在该元素位置插入值: splice(index,1,value,value...)

                                                                       (如果第二个参数为0,则直接插入值不删除指定位置的元素);

        排序: reverse()(数组逆序排序,调用方法数组即改变),sort([function])(可以定义一个比较规则的function作为参数);

        查找: indexOf(value,[index])(找指定元素的下标,第二个参数代表查找起点位置的索引),lastIndexOf()和indexOf()的

                  区别是lastIndexOf是从最后一个元素往前找;

        拼接: join([value]) (value为拼接的规则,例如join(" , "), 调用方法数组立即改变),

                 concat(value,value...)(value可以是字符串也可以是数组,原数组不会变,返回的值才是新数组);

        截取: slice(index1,index2)。

 

       对字符串的操作总结如下:

       对字符串进行拼接、裁剪、替换(同时可用于删除元素),获取指定字符串中元素的下标,获取字符串中某个位置的元素,

       大小写转换,去除字符串中的首尾空格。

       拼接: cancat(value,value...),返回的是一个副本,和数组中的cancat用法类似。

       裁剪: slice(index1,[index2]), substring(index1,[index2]), substr(index1,[index2])。

       替换: replace(value1,value2),value1可以是要匹配的值,可以是字符串也可以是正则,value2是要替换的新元素。

       获取指定元素下标: indexOf(value,[下标])从前往后搜索/lastIndexOf(value,[下标])从后往前搜索,和数组中的方法类似;

       获取指定下标的元素: charAt(index),chatCodeAt(index)(获取的字符编码)。

       大小写转换方法: toLocaleUpperCase()/toUpperCase()   toLocalLowerCase()/toLowerCase();

       注:字符串和数组中都有cancat、slice、indexOf/lastIndexOf。

 

   去重的方法有很多种,indexOf()方法存在浏览器兼容的问题,所以下面的去重并不是万能的方法。

/* * 对数组去重 */Array.prototype.uniquel1 = function () {	var i = this.length;	var arr = [];		while(i--) {		if(arr.indexOf(this[i]) === -1) {			arr.push(this[i]);		}	}	return arr.sort();}var arr2 = [1,2,3,2,4,7,9,4];console.log(arr2.uniquel1());

  未完待续...

几道笔试题回顾