トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     Object型のプロパティに変数を使いたい
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
tnagata
Åê¹ÆNo.29420
投稿日時: 2006-10-18 10:10
常連
居住地:
投稿: 140
使用環境:
Object型のプロパティに変数を使いたい
いつもお世話になっております。

よく使っている手法なんですが

var obj_array:Array = new Array();
obj_array.push({Name:"aaa", Value:1});
obj_array.push({Name:"bbb", Value:2});
obj_array.push({Name:"ccc", Value:3});

という形で配列内にObject型を仕込んでおいて


getValue("aaa", obj_array);
function getValue(str:String, ary:Array):Number
{
    var nLoop:Number = ary.length;
    for ( var i:Number = 0; i < nLoop; i++ )
    {
       if ( ary[i].Name == str )
       {
          return ary[i].Value;
       }
    }

    return -1;
}


等という具合に、Nameに割り当てた識別子を元に
値を返す・・・という処理を書いていたのですが

Object型になっている部分のプロパティ名が
変わるたびにgetValueの別パターンをいくつも作らないといけなかったので


getValue("aaa", obj_array, "Name", "Value");
function getValue(str:String, ary:Array, strID:String, strTarget):Number
{
    var nLoop:Number = ary.length;
    for ( var i:Number = 0; i < nLoop; i++ )
    {
       if ( ary[i][strID] == str )
       {
          return ary[i][strTarget];
       }
    }

    return -1;
}

としました。
まぁ、これである程度満足したのですが
気持ちとしては
ドットシンタックスで書きたいなぁと思っていまして

eval("ary[" + i + "]."+ strID)
のような参照をしてみたのですが、undefinedしか返ってこないので
ary[][]というような書き方しかないのかなぁと思っています。

他に書き方はないでしょうか?
ご存知の方いらっしゃれば、教えてください。

宜しくお願いします。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » Object型のプロパティに変数を使いたい tnagata 2006-10-18 10:10
     Re: Object型のプロパティに変数を使いたい Fumio 2006-10-18 13:50
       Re: Object型のプロパティに変数を使いたい tnagata 2006-10-18 15:11
         Re: Object型のプロパティに変数を使いたい Fumio 2006-10-18 15:38
           Re: Object型のプロパティに変数を使いたい tnagata 2006-10-18 16:30

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops