前端數組的基本操作

既然講到了數組,那就必須想到了數組的增刪改查。那就首先講數組的增刪改查。

1.增刪改查

1>刪 

shift() 刪除數組的第一個元素並返回刪除的元素(改變原數組)
pop() 刪除數組的最後一個元素並返回刪除的元素(改變原數組)
splice() 刪除元素,並向數組添加新元素。(改變原數組)

var arr= [0, 1, 2, 3, 4, 5]

var f1= arr.shift();

console.log(f1);// 0

console.log(arr);//[1, 2, 3, 4, 5]

............................................................

var arr= [0, 1, 2, 3, 4, 5]

var f2= arr.pop();//5

console.log(f2);// [0, 1, 2, 3, 4]

.............................................................

var arr= [0, 1, 2, 3, 4, 5]

var f3= arr.splice(2,1);//“2”從下標爲2開始,“1”刪除一個  splice(index,howmany,[item])

console.log(f3);// [2]

console.log(arr);//[1, 2, 3, 4, 5]

.............................................................................

方法1:構造函數進行刪除數組中的元素(splice())

function remove(arr, val) {
   for (var i = 0; i < arrq.length; i++) {
        if (arr[i] == val) {
            arr.splice(i, 1);
            break;
        }
   }
}
var somearray = ["mon", "tue", "wed", "thur"]
removeByValue(somearray, "wed"); 
console.log(somearray);// ["mon", "tue", "thur"]

方法2:數組對象增加相應的的方法刪除(splice())

Array.prototype.remove = function(val) {
   for (var i = 0; i < this.length; i++) {
       if (this[i] == val) {
           this.splice(i, 1);
           break;
       }
   }
}
var somearray = ["mon", "tue", "wed", "thur"]
somearray.remove("tue");
console.log(somearray);//["mon", "wed", "thur"]

方法3:通過元素的索引去刪除這個元素(indexOf(),splice())

Array.prototype.remove = function(val) { 
    var index = this.indexOf(val); 
    if (index > -1) { 
        this.splice(index, 1); 
    } 
}; 
var arr = ['abd', 'abd', 'abe', 'abf']
arr.remove('abd');
console.log(arr);//["abd", "abe", "abf"]

方法4:使用delete刪除,數組長度不變,有一項爲undefined

var arr = [1, 2, 3, 4, 5];
delete arr[1];//刪除數組中下標爲1的項目,代替爲undefined
console.log(arr); //[1, empty, 3, 4, 5]

2>增

push() 向數組的末尾添加一個或更多元素,並返回新的長度。(改變原數組)
unshift() 向數組的開頭添加一個或更多元素,並返回新的長度。(改變原數組)
splice() 刪除元素,並向數組添加新元素。(改變原數組)不能爲負數

 var arr = [1, 2, 3, 4, 5, 6]
 var f5 = arr.push('a', 'b');
 console.log(f5); //8
 console.log(arr); // [1, 2, 3, 4, 5, 6, "a", "b"]

.....................................................................................

var arr = [1, 2, 3, 4, 5, 6]

var f5 = arr.unshift('a', 'b'); 

console.log(f5); //8

console.log(arr); // [1, 2, 3, 4, 5, 6, "a", "b"]

...........................................................................................

var arr = [1, 2, 3, 4, 5, 6]

var f5 = arr.splice(2,0,'a', 'b'); //從下標爲2開始,刪除0個,向其中添加一個或多個

console.log(arr); // [1, 2, "a", "b", 3, 4, 5, 6]

3>查

slice() 從某個已有的數組返回選定的元素(不改變原數組)。splice(start,end);值可以爲負數
indexOf() 返回某個指定的字符串值在字符串中首次出現的位置的下標。

var arr = ['a', 'b', 'c', 'd','a'];

var f2 = arr.indexOf('a');

console.log(f2);//0

var f3=arr.indexOf('a',2);

console.log(f3);//4 從下標爲2開始查找 ‘a’,找到則輸出‘a'的下標

var f4 = arr.slice(2, 4);//從數組中找到下標值以,開頭->結尾,輸出你中間項(可以爲負數:-1爲倒數第一,-2爲倒數第二)

console.log(f4); //

方法1:使用函數判斷取得下標

function search(arr, item) {
   var index = -1; // 先定義一個下標
      arr.forEach(function(res, i) { // 元素  下標
        if (res === item && index === -1) {
            index = i;
        }
     );
  return index;
};
var arr = [1, 2, 3, 4, 5, 6];
var f5 = search(arr, 4)
console.log(f5);//3

方法2:簡單的寫法 ,在支持indexOf的瀏覽器運行

function search(arr,item) {
    return arr.indexOf(item); // 直接返回index下標
}     
var arr = [1, 2, 3, 4, 5, 6];
var f5 = search(arr, 4);
console.log(f5);//3

方法3:在數組中查找所有出現的x,並返回一個包含匹配索引的數組

function findall(arr, x) {
    var results = [],
    len = a.length,
    pos = 0;
    while (pos < len) {
        pos = a.indexOf(x, pos);
        if (pos === -1) { //未找到就退出循環完成搜索
           break;
        }
        results.push(pos); //找到就存儲索引
        pos += 1; //並從下個位置開始搜索
    }
    return results;
}

var arr = [1, 2, 3, 1, 4, 1, 4, 1];
var f1=findall(arr, 1); //返回[0,3,5,7]
console.log(f1);//[0, 3, 5, 7]

4>改

splice() 刪除元素,並向數組添加新元素。(改變原數組)

var arr = ['a', 'b', 'c', 'd', 'a'];

arr.splice(1, 2, "f", "h");

console.log(arr);//["a", "f", "h", "d", "a"]

2.常用的其他方式操作數組

sort() 對數組的元素進行排序.(返回新數組)
reverse() 顛倒數組中元素的順序。(返回新數組)
valueOf() 返回數組對象的原始值
toSource()

返回該對象的源代碼。

toLocaleString() 把數組轉換爲本地數組,並返回結果。(常用與本地時間轉換)

var arr = [1, 2, 5, 4, 8, 9, 6];

var f1 = arr.sort();

console.log(f1);//[1, 2, 4, 5, 6, 8, 9]

var f2 = f1.reverse();

console.log(f2);//[9, 8, 6, 5, 4, 2, 1]

var f3 = arr.valueOf();

console.log(f3)//9, 8, 6, 5, 4, 2, 1]

var date = new Date();

var f4 = date.toLocaleString();

console.log(f4)//2018/9/5 下午11:56:36

3.數組轉字符串操作

join() 用指定分隔符將數組分割成字符串並返回,默認爲逗號分割。
toString()

將數組轉化爲字符串

var arr = [1, 2, 5, 4, 8, 9, 6];

var f1 = arr.join();

console.log(f1);//9,8,6,5,4,2,1

var f2 = arr.toString();

console.log(f2);//9,8,6,5,4,2,1

4.字符串轉數組的操作

split() 將字符串以某個符號分割成字符串,並返回以數組的形式展示。(必須要加默認分割符)

var str = 'abcdefg';

var f 1=str.split('');

console.log(f1);//["a", "b", "c", "d", "e", "f", "g"];

在這裏感謝大家,希望大家多多支持。點波關注再走吧,如果幫到你了,也可以給個贊哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章