摘要:方法接收一個函數(shù)作為累加器數(shù)組中的每個值從左到右開始合并最終為一個值執(zhí)行數(shù)組中每個值的函數(shù)也可以叫做包含個參數(shù)上一次調(diào)用回調(diào)返回的值或者是提供的初始值數(shù)組中當前被處理的元素當前元素在數(shù)組中的索引調(diào)用的數(shù)組作為第一次調(diào)用的第一個參數(shù)這個參數(shù)不
reduce()
1.reduce()方法接收一個函數(shù)作為累加器(accumulator),數(shù)組中的每個值(從左到右)開始合并,最終為一個值.
array.reduce(callback, initialValue)
2.callback:執(zhí)行數(shù)組中每個值的函數(shù)(也可以叫做reducer),包含4個參數(shù).
1.previousValue:上一次調(diào)用回調(diào)返回的值,或者是提供的初始值(initialValue) 2.currentValue:數(shù)組中當前被處理的元素 3.index:當前元素在數(shù)組中的索引 4.array:調(diào)用reduce的數(shù)組
initialValue:作為第一次調(diào)用callback的第一個參數(shù),這個參數(shù)不是必需的.
var s = a.reduce((prev, current) => { return prev + current; // 1 + 2, 3+ 3 }, 10); console.log(s); var todos = [{ id: 1, completed: true }, { id: 2, completed: false }, { id: 3, completed: true }, { id: 4, completed: true }, { id: 5, compelted: false }]; const completedCount = todos.reduce((count, current) => { return current.completed ? count + 1 : count }, 0); console.log(completedCount); // 3 const unCompleted = todos.reduce((count, current) => { return !current.completed ? count + 1 : count; }, 0); console.log(unCompleted); // 2 var count = 0; todos.map((item) => { if (item.completed) { count++; } }); console.log(count); // 3filter()
1.filter()方法使用指定的函數(shù)測試所有元素,并創(chuàng)建一個包含所有通過測試的元素的新數(shù)組.
array.filter(callback, thisArg)
2.callback:用來測試數(shù)組的每個元素的函數(shù),包含三個參數(shù).
返回true表示保留該元素(通過測試),返回false則不保留.
currentValue:數(shù)組中當前被傳遞的元素.
var a = [1, 2, 3, 4, 5]; var b = a.filter((item) => { return item > 3; }); console.log(b); var todos = [{ id: 1, completed: true }, { id: 2, completed: false }, { id: 3, completed: true }, { id: 4, completed: true }, { id: 5, compelted: false }]; var completedTodos = todos.filter((item) => { return item.completed; }); console.log(completedTodos);map()
1.map()方法返回一個由原數(shù)組中的每個元素調(diào)用一個指定方法后的返回值組成的新數(shù)組.
array.map(callback, thisArg)
callback:原數(shù)組中的元素調(diào)用該方法后返回一個新的元素.
currentValue:數(shù)組中當前被傳遞的元素.
var a = [1, 2, 3, 4, 5]; var b = a.filter((item) => { return item > 3; }); console.log(b); // [4 ,5] var bb = []; a.map((item) => { if (item > 3) { bb.push(item); } }); console.log(bb); // [4, 5] var bbb = a.map((item) => { return item + 1; }); console.log(bbb); // [2, 3, 4, 5, 6]every()
1.every()方法用于測試數(shù)組中所有元素是否都通過了指定函數(shù)的測試.
array.every(callback, thisArg);
var a = [1, 2, 3, 4, 5]; var b = a.every((item) => { return item > 0; }); var c = a.every((item) => { return item > 1; }); console.log(b); // true console.log(c); // falsesome()
1.some()方法用于測試數(shù)組中是否至少有一項元素通過了指定函數(shù)的測試.
array.some(callback, thisArg);
var bb = a.some((item) => { return item > 4; }); var cc = a.some((item) => { return item > 5; }); console.log(bb); // true console.log(cc); // falseforEach()
1.forEach()為每個元素執(zhí)行對應(yīng)的方法.
var a = [1, 2, 3, 4, 5]; var b = []; a.forEach((item) => { b.push(item + 1); }); console.log(b); // [2,3,4,5,6]indexOf()
1.indexOf()方法返回在該數(shù)組中第一個找到的元素位置,如果它不存在則返回-1.
var a = [1, 2, 3, 4, 5]; var b = a.indexOf(2); var c = a.indexOf(6); console.log(b); // 1 console.log(c); // -1展開運算符
1.展開運算符允許一個表達式在某處展開.常用的場景包括:函數(shù)參數(shù),數(shù)組元素,解構(gòu)賦值.
另外,jsx的組件props也可以使用展開運算符來賦值.
2.解構(gòu)賦值(destructuring assignment)語法是一個js表達式,
它使得從數(shù)組或?qū)ο笾刑崛?shù)據(jù)賦值給不同的變量變?yōu)榭赡?
var a = [1, 2, 3, 4, 5]; var [b, c] = a; console.log(b); // 1 console.log(c); // 2 function fun(...a) { console.log(a); // [1, 2, 3] } fun(1, 2, 3); // 傳入1,2,3參數(shù),...a為數(shù)組[1,2,3] function gun({a, b}) { return a + b; } console.log(gun({ a: 1, b: 2 })); // 3
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84864.html
摘要:最近重構(gòu)了一個項目,引入了部分用法,最大的感受是讓這門語言變得更加嚴謹,更加方便。通過該方法獲得位置后還得比較一次才能判斷是否存在。再來看看的寫法使用數(shù)組來初始化一個,構(gòu)造器能確保不重復(fù)地使用這些值。下面提供鏈接,供有興趣的朋友參考。 最近重構(gòu)了一個SPA項目,引入了部分ES6用法,最大的感受是ES6讓javascript這門語言變得更加嚴謹,更加方便。本篇將結(jié)合實戰(zhàn)經(jīng)驗,對最常用的部...
摘要:本系列文章適合快速掌握入門語法,想深入學習的小伙伴可以看看阮一峰老師的入門本篇文章是對之前文章的一個補充,可以使代碼更簡潔函數(shù)參數(shù)默認值在傳統(tǒng)語法中如果想設(shè)置函數(shù)默認值一般我們采用判斷的形式在新的語法中我們可以在參數(shù)聲明的同時賦予默認值參數(shù) 本系列文章適合快速掌握 ES6 入門語法,想深入學習 ES6 的小伙伴可以看看阮一峰老師的《ECMAScript 6 入門》 本篇文章是對之前文章...
摘要:中的方法遍歷一下數(shù)組中的每個選項返回一個新的數(shù)組。還可以接受第二個參數(shù),作用類似與數(shù)組的方法,用于對每個元素進行處理。這個方式是用于將一組值,轉(zhuǎn)換為數(shù)組。可選到該位置前停止讀取數(shù)據(jù),默認等于數(shù)組長度。如果是負數(shù),表示倒數(shù)。 ES6中數(shù)組增加了很多新的方法,但是先回顧下之前ES5中的數(shù)組的方法。 ES5中的方法 Array.prototype.forEach 遍歷一下數(shù)組中的每個選...
閱讀 3669·2021-11-15 11:37
閱讀 2993·2021-11-12 10:36
閱讀 4469·2021-09-22 15:51
閱讀 2395·2021-08-27 16:18
閱讀 902·2019-08-30 15:44
閱讀 2177·2019-08-30 10:58
閱讀 1794·2019-08-29 17:18
閱讀 3290·2019-08-28 18:25