Edited at

Rubyのイテレータメソッドと似ているJavascriptの便利なメソッド

More than 5 years have passed since last update.

ECMAScript5になり、Rubyのイテレータメソッドに似たメソッドはJavascriptでも使えるようになった。それが下記のメソッドである

オブジェクトはArrayである


forEach(Rubyのeachのようなもの)


var array = [1, 2, 3, 4, 5];
var sum = 0;

array.forEach(function(value){
sum = value + sum
});

console.log(sum)

//=> 15


map(Rubyのmapのようなもの)


var array = [1, 2, 3, 4, 5];

even_array = array.map(function(value){
return value * 2
});

console.log(even_array);

//=> [2, 4, 6, ,8, 10]


reduce(Rubyのinjectのようなもの)


var a = [1, 3, 5, 7];

var sum = a.reduce(function(pre, value){
return pre + value;
});

console.log(sum)

//=> 16


filter(Rubyのselectのようなもの)

var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

var m = a.filter(function(value){
return (value % 2 == 0);
});

console.log(m)

//=> [2, 4, 6, 8, 10]


every(Rubyのall?のようなもの)


var a = [1, 2, 3, 4, 5];
var b = [1, 2, 3]

int_1 = a.every(function(value){
return (value <= 3)
});

int_2 = b.every(function(value){
return (value <= 3)
});

console.log(int_1); //=> false
console.log(int_2); //=> true


some(Rubyのany?のようなもの)


var a = [1, 2, 3, 4, 5, 6, 7];

int_1 = a.some(function(value){
return (value <= 3)
});

console.log(int_1) //=> true