This is part of GoJS (diagramming) project and "properties" is itemArray, which is defined inside of one node in diagram.
1) This works (hard coded values):
properties: [
{ "property_name": "Prop1", "property_value": "100"},
{ "property_name": "Prop2", "property_value": "101" },
{ "property_name": "Prop3", "property_value": "102" }
]
2) This doesn't work (from data source):
properties: [
data.ObjectPropertiesList.forEach(function (item, i) {
properties.push({ "property_name": item.Item1.toString(), "property_value": item.Item2.toString() });
})
]
2.1) With surrounding code:
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" }
]);
Why pushing data inside var declaration ? just declare your array then push values , see below working snippet
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);
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()
})
}
Don't use forEach
when you want map
:
properties: data.ObjectPropertiesList.map(function (item) {
return { "property_name": item.Item1.toString(), "property_value": item.Item2.toString() };
})
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.