2017-06-21 15 views
0

これはGoJS(ダイアグラム作成)プロジェクトの一部であり、 "プロパティ"はitemArrayであり、これは図の1つのノードの内部で定義されています。For Eachループを使用してJson項目を追加するにはどうすればよいですか?

properties: [ 
    { "property_name": "Prop1", "property_value": "100"}, 
    { "property_name": "Prop2", "property_value": "101" }, 
    { "property_name": "Prop3", "property_value": "102" } 
] 

2)これが動作しない(データソースから):

properties: [ 
    data.ObjectPropertiesList.forEach(function (item, i) { 
     properties.push({ "property_name": item.Item1.toString(), "property_value": item.Item2.toString() }); 
    }) 
] 

2.1)周囲のコードで:

これは、(ハードコードされた値)に動作

1)

myPalette.model = new go.GraphLinksModel([ 
    { key: "B", text: "some block", color: "blue" }, 
    { key: "G", text: "Macro", isGroup: true }, 
    { category: "circle", key: "Gc", text: "A", color: "black", group: "G", loc: "0 0" }, 
    { 
     category: "table", key: "Ga", group: "G", loc: "60 0", 
     properties: [ 
      data.ObjectPropertiesList.forEach(function (item, i) { 
       properties.push({ "property_name": item.Item1.toString(), "property_value": item.Item2.toString() }); 
      }) 
     ] 
    } 
], [ 
    { from: "Gc", to: "Ga" } 
]); 
+0

は、あなたが喜ばまた、あなたが –

答えて

0

yを使用しないでください。forEach ou want map

properties: data.ObjectPropertiesList.map(function (item) { 
    return { "property_name": item.Item1.toString(), "property_value": item.Item2.toString() }; 
}) 
+0

この作品ここに掲載されている第二の例のsorroundingコードを投稿することができますスニペット作業を参照してくださいが、なぜ使用しないでくださいforEach? – tesicg

+0

'map'を使用するのが最も良い例です。各要素を変更して新しい配列を返す入力配列があります。これは 'map'とまったく同じです、配列項目を変換して返します。 – str

0
var properties = []; 
for(var i=0; i < data.length; i++){ 
    var item = data[i]; 
    properties.push({ 
     "property_name": item.Item1.toString(), 
     "property_value": item.Item2.toString() 
    }) 
} 
0

なぜvar宣言内のデータをプッシュしますか?ただ、その後、値をプッシュし、あなたの配列を宣言以下

var data= {}; 
 
    data.ObjectPropertiesList = [ 
 
    {Item1:"Prop1",Item2:"100"}, 
 
    {Item1:"Prop2",Item2:"101"}, 
 
    {Item1:"Prop3",Item2:"102"}, 
 
] 
 

 
properties = []; 
 

 
data.ObjectPropertiesList.forEach(function (item, i) { 
 
    properties.push({ "property_name": item.Item1.toString(), "property_value": item.Item2.toString() }); 
 
}) 
 

 
console.log(properties);

+0

すばらしい:) @tesicg –

関連する問題