image

ECMA5から追加された配列Arrayメソッド(forEach,map,reduce,filter,every,some)とかsortも

</p>

<p>var ary = ['bb','eeee','aaa','dddd','cc'];
var result = ary.sort();//[&quot;aaa&quot;, &quot;bb&quot;, &quot;cc&quot;, &quot;dddd&quot;, &quot;eeee&quot;]</p>

<p>//文字の長さで順番を変えるsortカスタマイズ
function sortlength(a,b){
    return a.length -  b.length;
};
var result2 = ary.sort(sortlength);//[&quot;bb&quot;, &quot;cc&quot;, &quot;aaa&quot;, &quot;dddd&quot;, &quot;eeee&quot;]</p>

<p>//ECMA5から追加されたArrayメソッド</p>

<p>//forEach(要素に対して順番に関数を呼び出す)
//順番に要素を足していく関数
//各要素に対してarrayメソッドが呼び出されている.//forEachは単に関数を呼び出している
var sum = 0;
var arraySum = function(value){
    sum = sum + value;
}
var a = [1,3,5,7];
a.forEach(arraySum);
//↓無名関数をつかう
var su = 0;
var a  =[1,4,5,7];
a.forEach(function(vaule){sum = sum + vaule});</p>

<p>alert(sum);</p>

<p>//map 要素を配列にして返す
var a = [1,3,5,7];
var m = a.map(function(value){return value + 1});//[2, 4, 6, 8]</p>

<p>//reduce forEachのように順番に関数を呼び出すが、関数で返却された値と要素の2つを引数にして次の関数を呼び出す
var a = [1,3,5,7];
var sum = a.reduce(function(pre,value){
    return pre + value;//最後に関数の結果を返す為、都度格納する必要はない
});
//16</p>

<p>//filter 各要素に対して関数が呼び出される。関数がtrueを返した要素だけの配列が返却される
//偶数だけを配列にする</p>

<p>var fafa = [1,2,3,4,5,6,7];
var sum = fafa.filter(function(value){return (value % 2 == 0);})
//[2,4,6]</p>

<p>//every(全ての要素が条件を満たす場合true) some(いずれかの要素が条件を満たすばあいtrue)
var a = [1,2,3,4,5];
var be = a.every(function(value){return (value &lt;= 3);})//全て3以下か?
var be = a.some(function(value){return (value &lt;= 3);})//3以下の要素があるか?

(Visited 1 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。