【面試系列】之五:關於字符串以及數組的操做

之五:關於字符串以及數組的操做

關於數組的操做

先掌握一些基本的數組操做正則表達式

concat  // 用於拼接多個數組,接受多個參數
push    // 從數組尾部插入一個數,並返回新的數組長度
pop     // 從數組尾部刪除一個數,並返回被刪除的數
shift   // 從數組頭部刪除一個數,並返回被刪除的數
unshift // 從數組頭部插入一個數,並返回新的數組的長度
sort    // 將數組進行排序,能夠傳遞一個參數,是一個函數,若是不傳參默認是數字從小到大,字母從A到B
reverse // 將數組顛倒,沒有參數
slice   // 截取並返回一個新的數組,能夠傳兩個參數,截取開始的位置,和截取到的位置
splice  // 能夠傳入多個參數,沒有限制。第一個參數,找到一個參數的位置,第二個參數是刪除的個數,剩的參數就是要插入的數
join    // 將一個數組變爲一個字符串,有一個參數,能夠指定之間的分割字符,若是不傳參,默認是一個逗號
toString    // 將一個數組變爲一個字符串,用逗號分隔

對字符串的操做

對數組的操做數組

indexOf // 接受一個參數,在字符串中搜索的內容。返回正序搜索的第一次出現的位置。
lastindexOf // 接受一個參數,和上一個同樣。倒敘搜索,返回最後一次出現的位置
charAt  // 接受一個數字,是字符串的第幾個字符串的位置,返回搜索位置的那個數
concat  // 鏈接字符串
slice   // 截取一個字符串,傳兩個參數,一個開始的位置,和一個結束的位置支持兩個參數,返回一個新的字符串
spilt   // 將一個字符串轉化爲一個數組
substr  // 截取一個字符串,接受兩個參數,第一個是截取字符串的開始的位置,以及截取的長度
toLowerCase     // 將大寫的英文轉化爲小寫
toUpCase    // 將小寫的英文轉化的小寫

作兩個題吧

截取一個url裏面get方式的值,並轉化爲返回一個對象app

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上代碼url

最後

下一次立刻更新正則表達式專題。
對不起,更新晚了,你們一塊兒加油,麼麼噠!code

相關文章
相關標籤/搜索