drayarms Posted November 26, 2013 Share Posted November 26, 2013 I have a multidimensional array that I create dynamically like this var pairs = new Array(); pairs.push({person:"joel",fruit:"peach"}); pairs.push({person:"amina",fruit:"mangoe"}); pairs.push({person:"peter",fruit:"mangoe"}); So basically, the array has several elements each of which has two child elements, the first having key "peoson" and the second having key "fruit" such that pairs[0].fruit would have value "peach" for example and pairs[2].person would be "peter" Now I want to convert this array into a global javascript object so that I can access members of the array anywhere from my script. The object should look something like so: var NS.harvest = { 0:{person:"joel",fruit:"peach"}, 1:{person:"amina",fruit:"mangoe"}, 2:{person:"peter",fruit:"mangoe"} } So I tried this: var NS.harvest = {}; for (var i = 0; i < pairs.length; ++i){ if(pairs[i] !== undefined){ NS.harvest[i] = pairs[i]; } } return NS.harvest; That didn't do the trick. What should I do? And what do I do if I need to convert the object back into the array? Link to comment https://forums.phpfreaks.com/topic/284302-how-to-convert-multidimensional-array-into-java-script-object/ Share on other sites More sharing options...
requinix Posted November 26, 2013 Share Posted November 26, 2013 Copying from pairs? Any reason you can't just NS.harvest = pairs;But are you executing this from a function? Either have the function return pairs, or forget the function and just access NS.harvest (after setting it) directly. Link to comment https://forums.phpfreaks.com/topic/284302-how-to-convert-multidimensional-array-into-java-script-object/#findComment-1460226 Share on other sites More sharing options...
OAFC_Rob Posted November 27, 2013 Share Posted November 27, 2013 I've just done something similar and from my understanding javascript multi-dimensional arrays become javascript objects. I have attached the code that I did, might be some help to you. This gave me an object / multi-dimensional array like PHP; data => array(1 => array( id => 1, code => some code, desc => description, surveyDate => 27/11/2013, building => array( buildingCode => array( total => 150.00, count => 5, buildingID => 7, buildingCode => buildingCode, building => building description ) ) ) ); Hope that helps var data = new Array(); for (var i=0; i < surveys.length; i++) { var row = surveys.item(i); /** format any null data to something more useful */ var buildingCode = (row.buildingCode != null) ? row.buildingCode : 'Site Only'; var buildingID = (row.buildingID != null) ? row.buildingID : 0; /** if condition survey code is not the same as the previous then * reset the data for usage */ if (row.code != preRowCode) { preRowCode = row.code; prevBuildingCode = ''; var survey = new Array(); survey['building'] = new Object(); } /** if the building hasn't been set or is different then set the * prelimanary data */ if (buildingCode != prevBuildingCode) { prevBuildingCode = buildingCode; survey.building[buildingCode] = { total: row.totalCost, count: 1, buildingID: buildingID, buildingCode: buildingCode, building: row.buildingDesc }; } else { survey.building[buildingCode].total += row.totalCost; survey.building[buildingCode].count += 1; } survey['id'] = row.id; survey['code'] = row.code; survey['siteCode'] = row.siteCode; survey['surveyDate'] = row.surveyDate; /** assign the survey array to the data array, js crazy way of doing * a multi-dimensional array */ data[row.id] = survey; } Link to comment https://forums.phpfreaks.com/topic/284302-how-to-convert-multidimensional-array-into-java-script-object/#findComment-1460330 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.