之五:关于字符串以及数组的操作
关于数组的操作
先掌握一些基本的数组操作
concat // 用于拼接多个数组,接受多个参数
push // 从数组尾部插入一个数,并返回新的数组长度
pop // 从数组尾部删除一个数,并返回被删除的数
shift // 从数组头部删除一个数,并返回被删除的数
unshift // 从数组头部插入一个数,并返回新的数组的长度
sort // 将数组进行排序,可以传递一个参数,是一个函数,如果不传参默认是数字从小到大,字母从A到B
reverse // 将数组颠倒,没有参数
slice // 截取并返回一个新的数组,可以传两个参数,截取开始的位置,和截取到的位置
splice // 可以传入多个参数,没有限制。第一个参数,找到一个参数的位置,第二个参数是删除的个数,剩的参数就是要插入的数
join // 将一个数组变为一个字符串,有一个参数,可以指定之间的分割字符,如果不传参,默认是一个逗号
toString // 将一个数组变为一个字符串,用逗号分隔
对字符串的操作
对数组的操作
indexOf // 接受一个参数,在字符串中搜索的内容。返回正序搜索的第一次出现的位置。
lastindexOf // 接受一个参数,和上一个一样。倒叙搜索,返回最后一次出现的位置
charAt // 接受一个数字,是字符串的第几个字符串的位置,返回搜索位置的那个数
concat // 连接字符串
slice // 截取一个字符串,传两个参数,一个开始的位置,和一个结束的位置支持两个参数,返回一个新的字符串
spilt // 将一个字符串转化为一个数组
substr // 截取一个字符串,接受两个参数,第一个是截取字符串的开始的位置,以及截取的长度
toLowerCase // 将大写的英文转化为小写
toUpCase // 将小写的英文转化的小写
做两个题吧
截取一个url里面get方式的值,并转化为返回一个对象
var url = 'https://www.baidu.com/?sid=20510&dap=ipad&tab=novel&apple=ipad';
var obj = new Object();
url = url.substr(url.indexOf('?')+1);
function getObj() {
var key = url.slice(0, url.indexOf('='));
if (url.indexOf('&') === -1) {
var value = url.slice(url.indexOf('=')+1, -1);
obj[key] = value;
return
} else {
var value = url.slice(url.indexOf('=')+1, url.indexOf('&'));
url = url.substr(url.indexOf('&')+1);
obj[key] = value;
}
arguments.callee();
}
getObj();
console.log(obj);
还有一个题,字符串去重
// 数组去重(第一种方法)
var str = 'asjijiiiiiiiiiiqodddddddddd034577777777777777d';
var newArr = [];
var arr = str.slice('');
for (var i=0;i<arr.length;i++) {
if (i + 1 === arr.length) {
newArr.push(arr[i]);
break;
}
for (var j = i+1;j<arr.length;j++) {
if (arr[i] === arr[j]) {
break;
}
if (j === arr.length-1) {
newArr.push(arr[i]);
}
}
}
// 数组去重(第二种方法)
var newArr = [];
var arr = str.split('');
arr.sort();
for (var i=0;i<arr.length;i++) {
if (i+1 === arr.length) {
newArr.push(arr[i]);
break;
}
if (arr[i+1] !== arr[i]) {
newArr.push(arr[i]);
}
}
这个题的解法至少有六种,大家可以发挥,欢迎大家在评论区po上代码
最后
下一次马上更新正则表达式专题。
对不起,更新晚了,大家一起加油,么么哒!