es6语法 高阶函数 filter map reduce
有勇气的牛排
971
前端
2021-11-14 21:02:45
const nums = [10, 20, 30, 100, 200, 40, 50]
let total = nums.filter(n => n < 100).map(n => n * 2).reduce((pre, n) => pre + n)
console.log(total)
return this.books.reduce(function (preValue, book) {
return preValue + book.price * book.count
}, 0)
<pre><div class="hljs"><code class="lang-js"><span class="hljs-keyword">const</span> nums = [<span class="hljs-number">10</span>, <span class="hljs-number">20</span>, <span class="hljs-number">30</span>, <span class="hljs-number">100</span>, <span class="hljs-number">200</span>, <span class="hljs-number">40</span>, <span class="hljs-number">50</span>]
<span class="hljs-comment">// 1 filter函数的使用</span>
<span class="hljs-comment">// let newNums = nums.filter(function (n) {</span>
<span class="hljs-comment">// return n < 100</span>
<span class="hljs-comment">// })</span>
<span class="hljs-comment">// console.log(newNums)</span>
<span class="hljs-comment">// 2 map函数的使用</span>
<span class="hljs-comment">// let new2Nums = newNums.map(function (n) {</span>
<span class="hljs-comment">// return n * 2</span>
<span class="hljs-comment">// })</span>
<span class="hljs-comment">// console.log(new2Nums)</span>
<span class="hljs-comment">// 2 reduce函数的使用</span>
<span class="hljs-comment">// let total = newNums.reduce(function (preValue, n) {</span>
<span class="hljs-comment">// return preValue + n</span>
<span class="hljs-comment">// }, 0)</span>
<span class="hljs-keyword">let</span> total = nums.<span class="hljs-title function_">filter</span>(<span class="hljs-function"><span class="hljs-params">n</span> =></span> n < <span class="hljs-number">100</span>).<span class="hljs-title function_">map</span>(<span class="hljs-function"><span class="hljs-params">n</span> =></span> n * <span class="hljs-number">2</span>).<span class="hljs-title function_">reduce</span>(<span class="hljs-function">(<span class="hljs-params">pre, n</span>) =></span> pre + n)
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(total)
</code></div></pre>
<pre><div class="hljs"><code class="lang-js"><span class="hljs-comment">// 高阶函数reduce</span>
<span class="hljs-keyword">return</span> <span class="hljs-variable language_">this</span>.<span class="hljs-property">books</span>.<span class="hljs-title function_">reduce</span>(<span class="hljs-keyword">function</span> (<span class="hljs-params">preValue, book</span>) {
<span class="hljs-keyword">return</span> preValue + book.<span class="hljs-property">price</span> * book.<span class="hljs-property">count</span>
}, <span class="hljs-number">0</span>)
</code></div></pre>
留言