JavaScript常用數組操作方法

push() 往數組末尾添加任意多個元素

var arr = ['1', '2'];
arr.push('3');
console.log(arr);  // ["1", "2", "3"]

unshift() 往數組開頭添加任意多個元素

var arr = ['1', '2'];
arr.unshift('-1', '0');
console.log(arr);  // ["-1", "0", "1", "2"]

pop() 刪除數組的最後一個元素並返回刪除的元素

var arr = ["-1", "0", "1", "2"];
arr.pop();
console.log(arr);  // ["-1", "0", "1"]

shift() 刪除數組第一個元素

var arr = ["-1", "0", "1", "2"];
arr.shift();
console.log(arr);  // ["0", "1", "2"]

splice() 通過指定位置索引,刪除相應位置和數量的元素。第一個參數是刪除或插入的元素的索引值,第二個參數是刪除元素的個數,第三個參數往後就是要添加的元素。

var arr = ["Banana", "Orange", "Apple", "Mango"];
arr.splice(2, 0, "Lemon", "Kiwi");
// arr.splice(2, 0); // ["Banana", "Orange", "Apple", "Mango"]
// arr.splice(2, 1);  // ["Banana", "Orange", "Mango"]
console.log(arr);  // ["Banana", "Orange", "Lemon", "Kiwi", "Apple", "Mango"]

concat 連接兩個或多個數組,並返回結果。

var str1 = "Hello ";
var str2 = "world!";
var n = str1.concat(str2);
console.log(n); // Hello world!
var a = [1, 2, 3];
console.log(a.concat(4,5));  // [1, 2, 3, 4, 5]

every() 對數組中的每一項運行給定函數,如果該函數對每一項都返回true,則返回true;否則返回false

every() 不會對空數組進行檢測。every() 不會改變原始數組。

var ages = [32, 33, 16, 40];
function checkAdult(age) {
    return age >= 18;
}
console.log(ages.every(checkAdult));  // false

filter() 對數組的每一項運行給定的函數,返回函數會返回true的項組成的數組

var ages = [32, 33, 16, 40];
function checkAdult(age) {
    return age >= 18;
}
console.log(ages.filter(checkAdult));  //[32, 33, 40]

forEach() 對數組的每一項運行給的函數,沒有返回值

var  arr = [32, 33, 16, 40];
arr.forEach(item => {
console.log(item);  // 打印各個項
})

join() 將所有的數組元素連接成一個字符,元素是通過指定的分隔符進行分隔的

var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.join()); // Banana,Orange,Apple,Mango
console.log(fruits.join()); // Banana-Orange-Apple-Mango

indexOf() 返回第一個與給定參數相等的數組元素的索引,沒有找到則返回-1。

var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");
var m=str.indexOf("6");
console.log(n);  // 13
console.log(m);  // -1

lastIndexOf() 方法可返回一個指定的字符串值最後出現的位置,如果指定第二個參數 start,則在一個字符串中的指定位置從後向前搜索。

var str="I am from runoob,welcome to runoob site.";
var n=str.lastIndexOf("runoob");
console.log(n);  // 28

map() 對數組中的每一項運行給定的函數,返回每次函數調用的結果組成數組。

map() 不會對空數組進行檢測,不會改變原始數組。

var numbers = [4, 9, 16, 25];
numbers.map(Math.sqrt);  // [2, 3, 4, 5]

reverse() 顛倒數組中的元素的順序

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();  // ["Mango", "Apple", "Orange", "Banana"]

some() 對數組中的每一項運行給定的函數,如果任一項返回true,則返回true

var ages = [3, 10, 18, 20];
function checkAdult(age) {
    return age >= 18;
}
ages.some(checkAdult);  // true

sort() 按照字母順序對數組排序,支持傳入指定的排序方法的函數作爲參數

sort() 會改變原始數組!。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();  // ["Apple", "Banana", "Mango", "Orange"]
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b}); // [1, 5, 10, 25, 40, 100]

toString 將數組作爲字符串返回

var num = 15;
var n = num.toString();
console.log(n);  // "15"

valueOf 和toString類似,將數組作爲字符串返回

valueOf() 方法返回 Array 對象的原始值。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var v = fruits.valueOf();
console.log(v);  // ["Banana", "Orange", "Apple", "Mango"]

reduce() 計算數組元素相加後的總和

reduce() 可以作爲一個高階函數,用於函數的 compose。
reduce() 對於空數組是不會執行回調函數的。

var numbers = [65, 44, 12, 4];
function getSum(total, num) {
    return total + num;
}
console.log(numbers.reduce(getSum));  // 125

未完待續~~~

發佈了16 篇原創文章 · 獲贊 13 · 訪問量 4069
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章