之五:關於字串以及陣列的操作
關於陣列的操作
先掌握一些基本的陣列操作
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上程式碼
最後
下一次馬上更新正規表示式專題。
對不起,更新晚了,大家一起加油,麼麼噠!