首页 > 代码库 > 几道笔试题回顾
几道笔试题回顾
一、数组去重
昨天笔试的时候,发现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());
未完待续...
几道笔试题回顾