天下无坑

天下无坑


数组的实例回调方法

<pre><code>以下数组操作方法接收同样的参数 ArrayObject.CALLBACK(function(currentValue, index, thisArr), thisValue); </code></pre> <ul> <li><strong>都可以通过改变thisArr改变原数组</strong></li> </ul> <h4>1.filter() 过滤</h4> <p><code>返回true,则原样返回的元素</code></p> <ul> <li><strong>参数为回调函数</strong></li> <li><strong>不改变原数组</strong></li> <li><strong>返回新数组</strong></li> </ul> <p>filter() 方法返回数组中满足条件的元素组成的新数组,原数组不变</p> <pre><code class="language-javascript">var a = [1,2,3,4,11] // 第一个参数为一个方法,有三个参数,current:当前值 index:当前值下标 array:这个数组对象 var b = a.filter(function(current,index,array){ return current &lt; 10 //返回true或false }) console.log(b) // [1,2,3,4] console.log(a) // [1,2,3,4,11]</code></pre> <h4>2.map() 格式化数组</h4> <p><code>将元素格式化后返回</code></p> <ul> <li><strong>参数为回调函数</strong></li> <li><strong>不改变原数组</strong></li> <li><strong>返回新数组</strong></li> </ul> <p>map() 方法来根据需求格式化原数组,返回格式化后的数组。原数组不变</p> <pre><code class="language-javascript">var a = [1,2,3,4,5] // 参数同filter方法 var b = a.map(function(current,index,array){ return current + 1 //返回格式化后的元素 }) console.log(b) // [2,3,4,5,6] console.log(a) // [1,2,3,4,5]</code></pre> <h4>3.every()</h4> <p><code>一假即返回假</code></p> <ul> <li><strong>参数为回调函数</strong></li> <li><strong>不改变原数组</strong></li> <li><strong>返回true或false</strong></li> </ul> <p> 对数组的每一项都运行给定的函数,若每一项都返回 ture,则返回 true</p> <pre><code class="language-javascript"> var a = [1,2,3,4,5] var b = a.every(function(current,index,array){ return current &lt; 6 }) var c = a.every(function(current,index,array){ return current &lt; 3 }) console.log(b) // true console.log(c) // false </code></pre> <h4>4.some()</h4> <p><code>一真即返回真</code></p> <ul> <li><strong>参数为回调函数</strong></li> <li><strong>不改变原数组</strong></li> <li><strong>返回true或false</strong></li> </ul> <p>对数组的每一项都运行给定的函数,若存在一项符合返回true, 全部不符合返回false</p> <pre><code class="language-javascript"> var a = [1,2,3,4,5] var b = a.some(function(current,index,array){ return current &gt; 4 }) var c = a.some(function(current,index,array){ return current &gt; 5 }) console.log(b) // true console.log(c) // false </code></pre> <h4>5.forEach()  数组遍历</h4> <ul> <li><strong>参数为回调函数</strong></li> <li><strong>不改变原数组</strong></li> <li><strong>返回true或false</strong></li> <li><strong>遍历整个数组,中途不能break或return</strong> <pre><code class="language-javascript">var arr = ['a','b','c'] var copy = [] arr.forEach(function(item){ copy.push(item); }) console.log(copy)</code></pre></li> </ul> <h4>6.find()</h4> <ul> <li><strong>参数为回调函数</strong></li> <li><strong>不改变原数组</strong></li> <li><strong>返回 undefined 或 符合条件的元素</strong></li> </ul> <p>当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。 如果没有符合条件的元素返回 undefined。 注意: find() 对于空数组,函数是不会执行的。 注意: find() 并没有改变数组的原始值。</p> <pre><code class="language-javascript">var arr = ['a','b','c']; var res = arr.find(function(item){ return item=='b'; }); console.log(res);// b</code></pre> <h4>7.findIndex()</h4> <ul> <li><strong>参数为回调函数</strong></li> <li><strong>不改变原数组</strong></li> <li><strong>返回 -1 或 符合条件的元素索引值</strong></li> </ul> <p>当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。如果没有符合条件的元素返回 -1 注意: findIndex() 对于空数组,函数是不会执行的。 注意: find() 并没有改变数组的原始值。</p> <pre><code class="language-javascript">var arr = ['a','b','c']; var res = arr.findIndex(function(item){ return item=='b'; }); console.log(res);// 1</code></pre> <h4>8.reduce()</h4> <p><code>实现上一元素与当前元素的计算</code></p> <pre><code class="language-javascript">var arr = [1,2,3,4,5,6,7,8,9,10] var res = arr.reduce(function(prev,current,index,array){ return prev + current ; }) console.log(res) // 55;</code></pre>

页面列表

ITEM_HTML