2011-01-27 19 views
0

タイトルが少し混乱している場合は、ごめんなさい。ここに私が意味したことがあります - 私は配列とオブジェクトを持っています。私は、視覚を与えてみましょう:これは私のオブジェクトは、別の配列変数の配列変数

です:私のitemArray

obj["id"] = ["1","2","3"]; 
obj["name"] = ["na","no","ne"]; 

itemArray = ["id","name"]; 

そして今、私はオブジェクト内のアイテムを取得したいが、私が試した

for (var i:int = 0; i<objLen; i++) 
{ 
    for (var j:int = 0; j<count; j++) 
    { 
     textBox_txt.appendText(obj.arr[i][j]); 
    } 
} 

でも動作しません。配列内のarr [i]変数を実際にどのように使用するのですか? :■

答えて

0

おそらく、このような何か:

var array:Array; 
var count:int; 
for(var i:int = 0; i < itemArray.length; i++) 
{ 
    array = obj[ itemArray[ i ] ]; 
    count = array.length; 
    for (var j:int = 0; j<count; j++) 
    { 
     textBox_txt.appendText(array[ j ]); 
    } 
} 
+0

、ありがとう! – sanzochan

0

[OK]を、私はちょうどこれを見つけました。 jeremyne​​albrownの答えは動作しますが、それを行くための別の方法もあります:http://www.kirupa.com/forum/showpost.php?p=2596002&postcount=2基本的に

var obj = new Object(); 
obj["id"] = ["1","2","3"]; 
obj["name"] = ["na","no","ne"]; 
obj["sasdf"] = "asdfa asdfasdf asdf asdf af"; 

for (var i in obj) 
{ 
     if (obj[i] is Array) 
     { 
       for (var j:int = 0; j<obj[i].length; j++) 
       { 
         trace(obj[i][j]); 
         //textBox_txt.appendText(obj.arr[i][j]); 
       } 

     } 

} 
0

は、ネストされた配列にアクセスするために、2つの[]演算子を使用して、正しいですが、配列が一緒に入れている方法を混乱されています

  1. あなたの第一の目的は、2つの名前付きプロパティ、「ID」と「名前」、各々が含む1次元配列有する:

    (私は物をより読みやすくするためにこの表記法を使用します。これはコードと同じオブジェクトを作成します。あなたのitemArrayは内部のみ2つの文字列を持つ1次元配列であり、

  2. )!{}や[]ブラケットを注意してください、しかしそれはコードのどこにも表示されません。

    itemArray = ["id", "name"]; 
    
  3. あなたのループのために存在していないOBJオブジェクト、のプロパティ "ARR" 以上繰り返し処理:

    for (var i:int = 0; i<objLen; i++) 
    { 
        for (var j:int = 0; j<count; j++) 
        { 
         textBox_txt.appendText(obj.arr[i][j]); // obj has properties "id" and "name", but not "arr" 
        } 
    } 
    

は、今すぐ上記のすべてを忘れてしまいました。

var arr:Array= [ 
        ["1", "na"], 
        ["2", "no"], 
        ["3", "ne"] 
       ]; 

(注:あなたは二次元配列を望んでいた場合

  1. 、あなたがプロパティ名を省略できます。これはあなたが右のそれを行うことができる方法であるこれは、ネストされたセットを持っています[]演算子のうち、{}は大かっこです!) と、次のように繰り返す:あなたはまた、物事が素敵に見えるように名前付きプロパティを使用して、あなたのコードがより読みやすい可能性があり

    for (var i:int = 0; i<arr.length; i++) 
    { 
        for (var j:int = 0; j<arr[i].length; j++) 
        { 
         textBox_txt.appendText(arr[i][j]); 
        } 
    } // output: 1na2no3ne 
    
  2. var itemArray:Array = [ 
        {id:"1", name:"na"}, 
        {id:"2", name:"no"}, 
        {id:"3", name:"ne"} 
    ]; 
    

    (どのように[]と{注意してください}ブラケットが場所を変更しました!

    これは3つのオブジェクトを含む1次元配列です。 "id"と "name"を結びつける。あなたは、このようなあなたのテキストに、個々のオブジェクト名を追加する反復可能性:

    作品
    for each (var obj:Object in itemArray) { 
        textBox_txt.appendText(obj.id + "" + obj.name); 
    } // output: 1na2no3ne