javaScript數組對象的幾個方法

Array.prototype.splice

splice() 方法通過刪除現有元素和/或添加新元素來更改一個數組的內容。
語法
array.splice(start)
array.splice(start, deleteCount)
array.splice(start, deleteCount, item1, item2, ...)

var myFish = ["angel", "clown", "mandarin", "surgeon"];

//從第 2 位開始刪除 0 個元素,插入 "drum"
var removed = myFish.splice(2, 0, "drum");
//運算后的 myFish:["angel", "clown", "drum", "mandarin", "surgeon"]
//被刪除元素數組:[],沒有元素被刪除

//從第 3 位開始刪除 1 個元素
removed = myFish.splice(3, 1);
//運算后的myFish:["angel", "clown", "drum", "surgeon"]
//被刪除元素數組:["mandarin"]

//從第 2 位開始刪除 1 個元素,然后插入 "trumpet"
removed = myFish.splice(2, 1, "trumpet");
//運算后的myFish: ["angel", "clown", "trumpet", "surgeon"]
//被刪除元素數組:["drum"]

//從第 0 位開始刪除 2 個元素,然后插入 "parrot", "anemone" 和 "blue"
removed = myFish.splice(0, 2, "parrot", "anemone", "blue");
//運算后的myFish:["parrot", "anemone", "blue", "trumpet", "surgeon"]
//被刪除元素的數組:["angel", "clown"]

//從第 3 位開始刪除 2 個元素
removed = myFish.splice(3, Number.MAX_VALUE);
//運算后的myFish: ["parrot", "anemone", "blue"]
//被刪除元素的數組:["trumpet", "surgeon"]

Array.prototype.slice()

slice() 方法返回一個從開始到結束(不包括結束)選擇的數組的一部分淺拷貝到一個新數組對象。原始數組不會被修改。

var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
var citrus = fruits.slice(1, 3);

// fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
// citrus contains ['Orange','Lemon']

Array.prototype.reduce()

reduce() 方法對累加器和數組中的每個元素(從左到右)應用一個函數,將其減少為單個值。
語法
arr.reduce(callback[, initialValue])

數組累加求和

let res = [0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array){
  return accumulator + currentValue;
});
console.log(res);

reduce為數組中的每一個元素依次執行callback函數,不包括數組中被刪除或從未被賦值的元素,接受四個參數:①accumulator ②currentValue ③currentIndex ④array

回調函數第一次執行時,accumulator 和currentValue的取值有兩種情況:調用reduce時提供initialValue,accumulator取值為initialValue,currentValue取數組中的第一個值;沒有提供 initialValue,accumulator取數組中的第一個值,currentValue取數組中的第二個值

注意:如果沒有提供initialValue,reduce 會從索引1的地方開始執行 callback 方法,跳過第一個索引。如果提供initialValue,從索引0開始。

Array.prototype.find()

find()方法返回數組中滿足提供的測試函數的第一個元素的值。否則返回 undefined

var inventory = [
    {name: 'apples', quantity: 2},
    {name: 'bananas', quantity: 0},
    {name: 'cherries', quantity: 5}
];

function findBananas(fruit){
    return fruit.name === 'bananas';
}
console.log(inventory.find(findBananas));
const isPrime = (ele, index, arr) => {
    let start = 2;
    while(start <= Math.sqrt(ele)){
        if(ele % start ===0){
           return false;
        }
        start++;
    }
    return ele > 1;
}
const arr = [7,8,9,10,11];
console.log(arr.find(isPrime));
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容