jsディケンサの方法

2205 ワード

js配列のローズマリーメソッドは、2つに分けられます.新しい配列を生成しないで、新しい配列を生成します.
第一の方法:任意の新しい配列を生成せず、逆に、配列内の各要素に対して何らかの操作を行うか、または値を返します.
1.forEach()メソッドは、パラメータとして関数を受信し、配列の各要素にこの関数を使用します.

 function arr(num){console.log(num+1)};
 var array = [1,2,3,4,5,6];
 array.forEach(arr);
2.every()とsome()は、いずれも1つの戻り値がブールタイプの関数として受け入れられ、配列内の各要素にこの関数を使用します.every()メソッドは、すべての要素に対して、この関数はtrueに戻り、この方法はtrueに戻ります.some()メソッドの場合、この関数を使ってtrueに戻る要素がある限り、この方法はtrueに戻ります.

 var  arr = [1,3,4,5,6,7,8];
function even(num){return num%2 ==0};
var sum = arr.every(even);
var  nums = arr.some(even);
console.log(sum)//false;
console.log(nums)//true;</code></pre> 
  <pre><code class="language-javascript">
3.reduce()メソッドは一つの関数を受けて、一つの値を返します.この方法はアキュムレータ値から始まり、アキュムレータ値と配列中の後続要素に対して関数を呼び出します.配列の最後の要素まで、最後に得られたアキュムレータ値を返します.文字列配列要素を長い文字列に接続することもできます.
function add(total,num){return total+-*/num};
var arr =[1,2,3,4];
var sum = arr.reduce(add);
jsはreduceRight()の方法も提供していますが、彼とreduce()の方法は順序が逆で右から左に行きます.
第二の方法は、新しい配列を生成するためのローズマリー方法です. 
新しい配列:map()とfilter()を生成することができるローズマリー法が2つあります.map()とforEach()は少し似ていますが、配列の各要素には関数があります.違いは、map()は新しい配列を返します.この配列は元の要素に関数を適用して得られた結果です.
   function add(num) {
        return num+=5;
    }
    var words =[1,2,3,4,5];
    var sum =words.map(add);
console.log(sum);//[6,7,8,9,10]
 filter()とevery()は同様で、戻り値がブールタイプの関数であるということが伝わってきました.every()とは異なり、配列中のすべての要素に関数を適用した場合、結果がtrueである場合、この方法はtrueに戻りません.新しい配列を返します.この配列は関数を適用した結果trueとなる要素を含みます.
    function add(num) {
        return num%2 == 0;
    }
    var words =[1,2,3,4,5];
    var sum =words.filter(add);
console.log(sum);//[2,4];
filter() 。 :
function add(str){if(str).indexOf("cie")>-1){return true;}return false;}
var words =["recieve","deceit","deceive"]
var miss = words.filter(add);
console.log(miss)//["recieve"]