1. 程式人生 > 其它 >JavaScript基礎學習-斷言函式

JavaScript基礎學習-斷言函式

斷言函式

斷言函式接收3 個引數:元素、索引和陣列本身。
元素:陣列中當前搜尋的元素
索引:當前元素的索引
陣列:正在搜尋的陣列

常用斷言函式

jian

  • find():返回第一個匹配的元素
  • findIndex():返回第一個匹配元素的索引
    迭代函式
  • every():對陣列每一項都執行傳入的函式,如果對每一項函式都返回true,則這個方法返回true。
  • some():對陣列每一項都執行傳入的函式,如果有一項函式返回true,則這個方法返回true。
  • filter():對陣列每一項都執行傳入的函式,函式返回true 的項會組成陣列之後返回。
  • forEach():對陣列每一項都執行傳入的函式,沒有返回值。
  • map():對陣列每一項都執行傳入的函式,返回由每次函式呼叫的結果構成的陣列。
    歸併函式
    函式接收4 個引數:上一個歸併值、當前項、當前項的索引、陣列本身
    返回的任何值都會作為下一次呼叫同一個函式的第一個引數
  • reduce():從陣列第一項開始遍歷到最後一項
  • reduceRight():從最後一項開始遍歷至第一項
alert(people.find((element, index, array) => element.age < 28));
// {name: "Matt", age: 27}
alert(people.findIndex((element, index, array) => element.age < 28));
// 0

let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let everyResult = numbers.every((item, index, array) => item > 2);
alert(everyResult); // false 需要每個元素都>2才能返回true

let someResult = numbers.some((item, index, array) => item > 2);
alert(someResult); // true 有一個元素>2就返回true

let filterResult = numbers.filter((item, index, array) => item > 2);
alert(filterResult); // 3,4,5,4,3  篩選>2的元素

let mapResult = numbers.map((item, index, array) => item * 2);
alert(mapResult); // 2,4,6,8,10,8,6,4,2 返回一個新陣列(陣列中每個元素都進行了函式操作)

//forEach方法相當於for迴圈遍歷陣列
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
numbers.forEach((item, index, array) => {
    // 執行某些操作
    numbers[index] = item * 2;
});
alert(numbers); // 2,4,6,8,10,8,6,4,2
/*
使用reduce()函式執行累加陣列中所有數值的操作
第一次執行歸併函式時,prev 是1,cur 是2。第二次執行時,prev 是3(1 + 2),cur 是3(數
組第三項)。如此遞進,直到把所有項都遍歷一次,最後返回歸併結果
*/
let values = [1, 2, 3, 4, 5];
let sum = values.reduce((prev, cur, index, array) => prev + cur);
alert(sum); // 15