天天看點

JavaScript常用數組操作方法filter() 對數組的每一項運作給定的函數,傳回函數會傳回true的項組成的數組

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
           

未完待續~~~

繼續閱讀