JavaScriptで構造体(Struct)を操作する方法をわかりやすく解説
JavaScriptで構造体(Struct)を扱うには?
JavaScriptには、C言語のような組み込みの構造体(Struct)型は用意されていません。しかし、関数とオブジェクトを組み合わせることで、構造体と同じような働きを簡単に実現できます。
以下のサンプルコードを実行して、その方法を確認してみましょう。
サンプルコード
<!DOCTYPE html>
<html>
<body>
<script>
function displayStruct(str) {
var str = str.split(' ');
var count = str.length;
function constructor() {
for (var i = 0; i < count; i++) {
this[str[i]] = arguments[i];
}
}
return constructor;
}
var Item = displayStruct("player country");
var res = new Item('Sachin', 'India');
alert("Country: "+res.country);
</script>
</body>
</html>
コードの解説
このコードの仕組みは以下の通りです。
- displayStruct()関数:スペース区切りの文字列を受け取り、各単語をプロパティ名として扱うコンストラクタ関数を生成して返します。
- str.split(' '):文字列を単語ごとに分割し、その個数を変数countに格納します。
- constructor()関数:ループ処理によって、渡された引数の値を各プロパティに順番に割り当てます。
- new Item('Sachin', 'India'):これにより、「player」と「country」という2つのプロパティを持つオブジェクトが生成されます。
出力結果
上記のコードを実行すると、次のようなアラートが表示されます。
Country: India
このように、関数を活用すればJavaScriptでも構造体のようなデータ構造を柔軟に定義・操作することが可能です。プロパティ名を変えれば、さまざまなデータ構造に応用できます。
-
【JavaScript】ゼロを含む文字列を数値に変換する方法をわかりやすく解説
JavaScriptでは、ドット(.)やゼロを含む文字列を数値として扱いたい場面があります。例えば、次のような文字列があったとします。var stringValue="453.000.00.00.0000";このようにゼロや区切り文字を含む文字列をそのまま数値変換しようとすると、意図した結果になりません。そこで、replace()メソッドで不要なドットを取り除き、parseInt()で整数に変換するという2段階の処理を行います。var numberValue = parseInt(stringValue.replace(/\./gm, ''));コード全体の
-
MongoDBにJavaScript関数を保存・実行する方法をわかりやすく解説
MongoDBに保存されたJavaScriptを操作する方法 MongoDBでは、JavaScriptの関数をデータベース内の特別なコレクション「system.js」に保存できます。この仕組みを利用すれば、よく使う処理をサーバー側に登録しておき、必要なときにいつでも呼び出すことが可能です。関数の保存には db.system.js.save() メソッドを使用します。 JavaScript関数を保存する基本構文 db.system.js.save({ _id: anyFunctionName, value: function (returnValue) { re