プログラミング/配列の反復
< プログラミング
はじめに
編集配列は、プログラミングにおいて複数のデータを効率的に扱うための重要なデータ構造です。配列の要素を一つずつ処理するためには、反復構造を使用します。この章では、JavaScriptとRubyにおける配列の反復処理について学び、具体的なコード例を通じてその使い方を習得します。
配列とは
編集配列は、複数の値を順序付けて格納するデータ構造です。各要素にはインデックス(番号)が割り当てられ、インデックスを使って要素にアクセスします。
JavaScriptの例
編集const fruits = ["Apple", "Banana", "Orange"]; console.log(fruits[0]); // "Apple"
Rubyの例
編集fruits = ["Apple", "Banana", "Orange"] puts fruits[0] # "Apple"
配列の反復処理
編集配列の各要素に対して処理を行うためには、反復構造を使用します。主な方法として、以下のような方法があります。
forループ
編集forループは、インデックスを使って配列の要素を順番に処理します。
JavaScriptの例
編集const fruits = ["Apple", "Banana", "Orange"]; for (let i = 0; i < fruits.length; i++) { console.log(fruits[i]); }
Rubyの例
編集fruits = ["Apple", "Banana", "Orange"] for i in 0...fruits.length puts fruits[i] end
for...ofループ(JavaScript) / for...inループ(Ruby)
編集JavaScriptのfor...of
ループやRubyのfor...in
ループは、インデックスを使わずに直接要素にアクセスします。
JavaScriptの例
編集const fruits = ["Apple", "Banana", "Orange"]; for (const fruit of fruits) { console.log(fruit); }
Rubyの例
編集fruits = ["Apple", "Banana", "Orange"] for fruit in fruits puts fruit end
forEachメソッド(JavaScript) / eachメソッド(Ruby)
編集配列の各要素に対して関数を適用するためのメソッドです。JavaScriptではforEach
、Rubyではeach
を使用します。
JavaScriptの例
編集const fruits = ["Apple", "Banana", "Orange"]; fruits.forEach(function(fruit) { console.log(fruit); });
Rubyの例
編集fruits = ["Apple", "Banana", "Orange"] fruits.each do |fruit| puts fruit end
mapメソッド
編集map
メソッドは、配列の各要素に対して関数を適用し、新しい配列を生成します。
JavaScriptの例
編集const numbers = [1, 2, 3]; const doubled = numbers.map(function(num) { return num * 2; }); console.log(doubled); // [2, 4, 6]
Rubyの例
編集numbers = [1, 2, 3] doubled = numbers.map { |num| num * 2 } puts doubled.inspect # [2, 4, 6]
filterメソッド
編集filter
メソッドは、条件に合致する要素だけを抽出して新しい配列を生成します。
JavaScriptの例
編集const numbers = [1, 2, 3, 4, 5]; const evens = numbers.filter(function(num) { return num % 2 === 0; }); console.log(evens); // [2, 4]
Rubyの例
編集numbers = [1, 2, 3, 4, 5] evens = numbers.select { |num| num % 2 == 0 } puts evens.inspect # [2, 4]
応用例
編集配列の反復処理を活用することで、さまざまな処理を効率的に実装できます。
配列の合計値を計算
編集JavaScriptの例
編集const numbers = [1, 2, 3, 4, 5]; let sum = 0; numbers.forEach(function(num) { sum += num; }); console.log(sum); // 15
Rubyの例
編集numbers = [1, 2, 3, 4, 5] sum = 0 numbers.each { |num| sum += num } puts sum # 15
配列の最大値を見つける
編集JavaScriptの例
編集const numbers = [10, 20, 30, 40, 50]; let max = numbers[0]; numbers.forEach(function(num) { if (num > max) { max = num; } }); console.log(max); // 50
Rubyの例
編集numbers = [10, 20, 30, 40, 50] max = numbers[0] numbers.each { |num| max = num if num > max } puts max # 50
練習問題
編集- forループ: 配列
[1, 2, 3, 4, 5]
の各要素を2倍にして新しい配列を作成するプログラムをJavaScriptとRubyで作成してください。 - forEach / each: 配列
["apple", "banana", "cherry"]
の各要素を大文字に変換して表示するプログラムをJavaScriptとRubyで作成してください。 - map: 配列
[10, 20, 30]
の各要素を3倍にした新しい配列を作成するプログラムをJavaScriptとRubyで作成してください。 - filter / select: 配列
[5, 12, 8, 130, 44]
から10より大きい要素だけを抽出するプログラムをJavaScriptとRubyで作成してください。
まとめ
編集配列の反復処理は、プログラミングにおいて非常に重要なスキルです。JavaScriptとRubyでは、for
ループやforEach
/each
メソッド、map
メソッド、filter
/select
メソッドなど、さまざまな方法で配列の要素を処理できます。これらの方法を適切に使い分けることで、効率的で読みやすいコードを書くことができます。