Array of 'associative array' in (node)js
Solution 1
Javascript does not have associative arrays, only plain objects:
var myObj = {
myProp: 'test',
mySecondProp: 'tester'
};
alert(myObj['myProp']); // alerts 'test'
myObj.myThirdProp = 'testing'; // still works
for (var i in myObj) {
if (!myObj.hasOwnProperty(i)) continue; // safety!
alert(myObj[i]);
}
// will alert all 3 the props
For converting PHP arrays to javascript use json_encode
If you want to play it safe though, you would want to quote the properties as well, as reserved keywords will make your construct fail in some browsers, or will not be accepted by some compression systems:
var obj1 = {
function: 'boss', // unsafe
'function': 'employee' // safe
};
console.log(obj1.function); // unsafe
console.log(obj1['function']); // safe
Solution 2
Simply create a generic object with your configurations:
var config = {
test: {
something: 'http://something.com/web/stats_data2.php',
anothersomething: 'http://anothersomething.com/web/stats_data2.php'
}
};
Then you can use it this way:
var something = config.test.something;
or
var something = config.test['something'];
or
var something = config['test']['something'];
There is not so much to test but if you want to you can use tools like Firebug or Chrome Developer Tools.
Solution 3
Using chrome browser, open console default, the short cut key is F12. You can test your code in the console.
Comments
-
DrakaSAN over 1 year
I have this code in php to translate in js (node to be precise)
$config['test'] = array( "something" => "http://something.com/web/stats_data2.php" ,"somethingelse" =>"http://somethingelse.com/web/stats_data2.php" ,"anothersomething" =>"http://anothersomething.com/web/stats_data2.php" );
So I started to write this:
config.test = [ something = 'http://something.com/web/stats_data2.php' , somethingelse = 'http://somethingelse.com/web/stats_data2.php' , anothersomething = 'http://anothersomething.com/web/stats_data2.php']
But I m not sure if it s not supposed to be writed like this instead:
config.test.something = 'http://something.com/web/stats_data2.php'; config.test.something = 'http://somethingelse.com/web/stats_data2.php'; config.test.anothersomething = 'http://anothersomething.com/web/stats_data2.php';
The goal is, if I do console.log(config.test.['something']);, to have the link in the output.
Is there any way to test it without server (since I don t have any before tomorrow), or is my syntax good?
-
NDM over 10 yearssince he is doing a
console.log
, I guess he known this. -
DrakaSAN over 10 yearsconsole.log is a habit of node.js, I m usually doing app with it, not webpages, so console.log write in the linux console, not the browser. (And I never use chrome browser also). And it s good to know I can use chrome to test without server. (Even if I ll probably use Firebug like letiagoalves said).
-
srain over 10 years
console.log
is defined inchrome v8
, also innode.js
andchrome web js
.