質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

6回答

8376閲覧

連番の付いたプロパティの内容を繰り返し処理で取得したい

agepan

総合スコア66

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

1グッド

1クリップ

投稿2018/04/10 23:54

JavaScriptのプロパティ(オブジェクト)として以下の連番が振られたデータがあるときに、for文のような繰り返し処理を使ってまとめて内容を取得したいのですが、どのようにコードを書くことで実現できるでしょうか?

よろしくお願いいたします。

JavaScript

1var test = { 2 'koumoku_1': 'あああ', 3 'koumoku_2': 'いいい', 4 'koumoku_3': 'ううう' 5} 6 7for (var i = 0; i < test.length; i++) { 8 console.log(test.koumoku_[i + 1]); // これではデータにアクセスできない 9} 10 11// 現状、同じコードを連番分だけ複製させて処理させていますが、シンプルなコードを実現したいです 12console.log(test.koumoku_1); 13console.log(test.koumoku_2); 14console.log(test.koumoku_3);
HayatoKamono👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

オブジェクトはfor-in構文でループ可能です.

JavaScript

1var test = { 2 'koumoku_1': 'あああ', 3 'koumoku_2': 'いいい', 4 'koumoku_3': 'ううう' 5} 6for (var i in test) { 7 console.log(test[i]); 8}

NOTE:
Object.entriesメソッドと組み合わせるとfor-of構文が使えるようになります.

JavaScript

1var test = { 2 'koumoku_1': 'あああ', 3 'koumoku_2': 'いいい', 4 'koumoku_3': 'ううう' 5} 6for(var [key, val] of Object.entries(test)){ 7 console.log(val); 8}

NOTE:
一般のオブジェクトにはlengthプロパティがありませんから, 普通のループ処理はできません. もしも数値部が連続しており, その範囲が判っているのであれば次のように記述することが可能です.

JavaScript

1var test = { 2 'koumoku_1': 'あああ', 3 'koumoku_2': 'いいい', 4 'koumoku_3': 'ううう' 5} 6var [begin, end] = [1, 3]; 7for (var i = begin; i <= end; i++) { 8 console.log(test[`koumoku_${i}`]); 9}

投稿2018/04/11 00:01

編集2018/04/11 00:19
defghi1977

総合スコア4756

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

agepan

2018/04/12 00:49

ありがとうございます! 色々な方法をご教授頂きありがとうございます。これらの方法は今後もよく使えると思いますので勉強させていただきます!
guest

0

js

1var test = { 2 'koumoku_1': 'あああ', 3 'koumoku_2': 'いいい', 4 'koumoku_3': 'ううう' 5} 6 7$.each(test,function(i,k){ 8 console.log(i+' : '+k); 9});

簡単にまわしてみました。

投稿2018/04/10 23:58

編集2018/04/11 00:50
Atsushi_Okumura

総合スコア355

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

agepan

2018/04/12 00:48

ご回答ありがとうございます! このような方法でも値を取得できるのですね。ありがとうございました。
guest

0

今回の質問のケースの場合はobjectを列挙するかたちで問題なさそうですが、一応、ObjectとMapでは列挙のされ方に違いがあるので、両パターンを参考までに置いておきます。

Object

const obj = { [Symbol('symbol')]: 'symbol', koumoku: 'あああ', koumoku_1: '111', koumoku_2: '222', koumoku_3: '333', '3': 'さん' } for ( let key in obj) { console.log(obj[key]) } // 以下ログの結果 // さん // あああ // 111 // 222 // 333

ポイント

  • 挿入順に列挙される保証はない
  • Symbolはfor inで列挙されない
  • 1"1"など数字っぽいkeyが'aaa'のような文字列より順序が優先される(言語仕様というより、これはモダンブラウザの実装による)

Map

const dic = new Map([ [Symbol(), 'symbol'], ['koumoku', 'あああ'], ['koumoku_1', '111'], ['koumoku_2', '222'], ['koumoku_3', '333'], ['3', 'さん'] ]) // これでもOK // console.log(...dic.values()) for (let [key, value] of dic) { console.log(value); } // 以下ログの結果 // symbol // あああ // 111 // 222 // 333 // さん

ポイント

  • Symbolも列挙されるし、また、全て挿入順に列挙される

投稿2018/04/11 01:02

編集2018/04/11 01:06
HayatoKamono

総合スコア2415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

agepan

2018/04/12 00:53

ご回答ありがとうございます。 オブジェクトに含まれるデータ(名前の統一性含め)が揃っていないようなときはご教授頂いた方法がとても役立ちそうです。勉強になりました!ありがとうございます!
guest

0

すでに変数の連番についてはずばり回答が揃ったようなので
連番だけが目的ならこうする手もあるでしょう。

javascript

1var test = { 2 'koumoku':[ 3 'あああ', 4 'いいい', 5 'ううう', 6 ], 7}; 8 9for (var i = 0; i < test.koumoku.length; i++) { 10 console.log(test.koumoku[i]); 11} 12console.log(test.koumoku[0]); 13console.log(test.koumoku[1]); 14console.log(test.koumoku[2]);

※連番=参照に順番をもたせたいなら配列で指定し、
連番の最初は1ではなく0が処理しやすい

蛇足

koumokuにつく数値が何から始まって何でおわるかわからなかったり
ゴミデータがあったりする場合も想定するとこう

javascript

1var test = { 2 'koumoku_102': 'いいい', 3 'koumoku_103': 'ううう', 4 'koumoku_101': 'あああ', 5 'gomi': 'えええ', 6} 7 8var num=Object.keys(test).map(function(v){ 9 return (r=v.match(/koumoku_([0-9]+)/))?parseInt(r[1]):null; 10}).filter(function(v){ 11 return v!==null; 12}).sort(); 13 14for (var i = 0; i < num.length; i++) { 15 console.log(test["koumoku_"+num[i]]); 16}

投稿2018/04/11 00:25

編集2018/04/11 00:39
yambejp

総合スコア114829

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

agepan

2018/04/12 00:51

今回はデータの見やすさから連番指定ということになりましたが、配列だと処理しやすいというのが分かりますね。ご回答ありがとうございました!
guest

0

ベストアンサー

Javascript

1for (var i = 0; i < test.length; i++) 2{ 3 console.log(test["koumoku_" + (i + 1)]); // こんなんで行けたような遥かな記憶… 4}

オブジェクトのプロパティアクセス

投稿2018/04/10 23:59

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

agepan

2018/04/12 00:46

ご回答ありがとうございました。 こちらの方法で無事連番のプロパティ値を拾うことができました。 ありがとうございました!
guest

0

これでいけませんでしょうか。

JavaScript

1for (var i = 0; i < test.length; i++) { 2 console.log(test["koumoku_" + (i + 1)]); 3}

投稿2018/04/10 23:59

編集2018/04/11 00:01
akabee

総合スコア1947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/11 00:00

スミ括弧の数が合っていないようななな
akabee

2018/04/11 00:01

そうですね。修正します。luckerさんの回答と同じ結果になると思います。
退会済みユーザー

退会済みユーザー

2018/04/11 00:01

うふふふふ。
agepan

2018/04/12 00:46

ありがとうございました。 こちらと同様のコードにて処理させることができました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問