您的位置:首页 > 其它

关于字符串以及数组的操作

2016-10-07 20:04 260 查看


关于数组的操作

先掌握一些基本的数组操作
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]);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: