L8V2L Posted August 24, 2014 Share Posted August 24, 2014 Does a arrays iterate in there index to get the value for the key? Is it some look up and search?Or magic? Link to comment Share on other sites More sharing options...
niche Posted August 24, 2014 Share Posted August 24, 2014 i think you're referring to foreach loops http://www.w3schools.com/php/php_looping_for.asp Link to comment Share on other sites More sharing options...
L8V2L Posted August 24, 2014 Author Share Posted August 24, 2014 (edited) i think you're referring to foreach loops http://www.w3schools.com/php/php_looping_for.aspNo... Why did you post a link to a php for loop?I'm speaking on this:var arr = new Array(100);arr[arr.length] = "elem";arr[101]; //elemDid it iterate to the value or is it magic--in the sense that the key "101" brought the value "elem"-- Edited August 24, 2014 by L8V2L Link to comment Share on other sites More sharing options...
niche Posted August 24, 2014 Share Posted August 24, 2014 not magic. see this: http://www.javascripter.net/faq/creatingarrays.htm Link to comment Share on other sites More sharing options...
Don E Posted August 24, 2014 Share Posted August 24, 2014 I believe it's because arrays start at 0 and the .length property counts from 1. So you have 100 indexes for arr.. you then add to the 101 index using the length property value( which is 101) the value "elem." From 0 to 100, the length for arr is 101. Link to comment Share on other sites More sharing options...
L8V2L Posted August 24, 2014 Author Share Posted August 24, 2014 I believe it's because arrays start at 0 and the .length property counts from 1. So you have 100 indexes for arr.. you then add to the 101 index using the length property value( which is 101) the value "elem." From 0 to 100, the length for arr is 101. ... It's the key to getting the value I'm referring to. Not ths actually index number. It could have been arr["foo"] = "bar"; Link to comment Share on other sites More sharing options...
Ingolme Posted August 24, 2014 Share Posted August 24, 2014 That's not an array, that's an object. Arrays only take numbers as indices. Link to comment Share on other sites More sharing options...
L8V2L Posted August 24, 2014 Author Share Posted August 24, 2014 (edited) That's not an array, that's an object. Arrays only take numbers as indices. /*|*|... True since arrays are objects. |*|But array number |*|index are actually string |*|index via the ECMAScript spec. And |*|also array can have name |*|properties i.g.:*/var arr;arr = new Array("0","1","2");console.log(arr.constructor === Array); //truearr['num'] = '3';console.log(arr.constructor === Array); //truearr[3]; //in most case, undefinedarr["num"]; // the string 3arr.num; // the string 3/*|*|but this is still not what I'm|*|refering to! Do arrays iterate|*|to the key/value pisition? |*|does it iterate to index 3 |*|when arr[3], or is it magic?|*|same goes for non-numeric |*|properties. i.e.: arr["num"].*/ Edited August 24, 2014 by L8V2L Link to comment Share on other sites More sharing options...
L8V2L Posted August 24, 2014 Author Share Posted August 24, 2014 (edited) not magic. see this: http://www.javascripter.net/faq/creatingarrays.htmAnd just to make sure you know, I went to the link. Thanks for the enjoyable read!--I I very much enjoy going back over the material...-- Edited August 24, 2014 by L8V2L Link to comment Share on other sites More sharing options...
davej Posted August 24, 2014 Share Posted August 24, 2014 It is a little mysterious. In a simpler world, such as in c code, the array is a simple thing. In Javascript the array is not such a simple thing. I would guess that the Javascript engine maintains a set of tables to keep track of array elements. Link to comment Share on other sites More sharing options...
L8V2L Posted August 24, 2014 Author Share Posted August 24, 2014 It is a little mysterious. In a simpler world, such as in c code, the array is a simple thing. In Javascript the array is not such a simple thing. I would guess that the Javascript engine maintains a set of tables to keep track of array elements.You're mostly right... Wouldn't JSON be faster than? Dropping in the key and getting a return value, plus, you can set up JSON to be map as a tabular database via either arrays or objects. Link to comment Share on other sites More sharing options...
Ingolme Posted August 24, 2014 Share Posted August 24, 2014 JSON isn't faster than Javascript because JSON is a data storage format. Javascript is the one doing the work of parsing JSON and turning it into Javascript objects. Being able to add properties to an array is a quirk of Javascript and you shouldn't use it. If you're using it that way it's no longer an array, it's an object. Link to comment Share on other sites More sharing options...
L8V2L Posted August 24, 2014 Author Share Posted August 24, 2014 JSON isn't faster than Javascript because JSON is a data storage format. Javascript is the one doing the work of parsing JSON and turning it into Javascript objects. Being able to add properties to an array is a quirk of Javascript and you shouldn't use it. If you're using it that way it's no longer an array, it's an object. I understand what your saying, but that last part is incorrect... at least by the test that I have giving above. Copy and paste that in the console. And you'll get the answer that is commented in my post. So going by that, Array can have name properties. It's not recommended to use it as so. But it is not illegal to do so. Array can have name properties too, and still have their constructor pointing to array. Link to comment Share on other sites More sharing options...
Ingolme Posted August 24, 2014 Share Posted August 24, 2014 Yes, now what was your question again? Link to comment Share on other sites More sharing options...
L8V2L Posted August 24, 2014 Author Share Posted August 24, 2014 Yes, now what was your question again? davej kinda answer the question. I ask what is the mechanism behind retrieving arrays elements via there keys? Does it iterate, or is it magic... please look over my other post for more detail. This is just the jus--could someone spell this word right for me-- of it. Link to comment Share on other sites More sharing options...
davej Posted August 24, 2014 Share Posted August 24, 2014 JSON is just the raw declaration of an object. If you had an array containing a million elements you wouldn't want to iterate through them for each array access. You would create and use an index table or some sort of hash table. Link to comment Share on other sites More sharing options...
L8V2L Posted August 24, 2014 Author Share Posted August 24, 2014 JSON is just the raw declaration of an object. If you had an array containing a million elements you wouldn't want to iterate through them for each array access. You would create and use an index table or some sort of hash table. Where going to go with it's just magic. So with that logical. having a containing a million elements would be easy to go through with out iterating through them with just using the key to access the element you want. So if you have an variable containing million array; which of those array in that array are named index, and they contain objects. So... So how the SQL query relational database data? Link to comment Share on other sites More sharing options...
davej Posted August 24, 2014 Share Posted August 24, 2014 Databases create indexes of the primary key and other column indexes can be created. Link to comment Share on other sites More sharing options...
L8V2L Posted August 24, 2014 Author Share Posted August 24, 2014 (edited) Databases create indexes of the primary key and other column indexes can be created.So like this: relational database model Edited August 24, 2014 by L8V2L Link to comment Share on other sites More sharing options...
davej Posted August 24, 2014 Share Posted August 24, 2014 That diagram is mostly about foreign keys. Link to comment Share on other sites More sharing options...
L8V2L Posted August 24, 2014 Author Share Posted August 24, 2014 That diagram is mostly about foreign keys. var table;table = [];table["row0"] = [];table.row0[0] = {car:"01"};table.row0[0].car;/*i can understand your argument on querying this, but there are querying tools for querying, i.g.: JSONiq*/ Link to comment Share on other sites More sharing options...
Ingolme Posted August 25, 2014 Share Posted August 25, 2014 In order fo understand databases properly you have to have an understanding of the data structures they use. JSON is nothing but a textual representation of information. Learn what a data structure is: http://en.wikipedia.org/wiki/Data_structure Learn types of data structures used by the database: http://en.wikipedia.org/wiki/B-tree http://en.wikipedia.org/wiki/Hash_table http://en.wikipedia.org/wiki/Red_black_tree JSON is a really superficial thing that's unrelated to the fundamental concepts of a database. 1 Link to comment Share on other sites More sharing options...
L8V2L Posted August 25, 2014 Author Share Posted August 25, 2014 In order fo understand databases properly you have to have an understanding of the data structures they use. JSON is nothing but a textual representation of information. Learn what a data structure is: http://en.wikipedia.org/wiki/Data_structure Learn types of data structures used by the database:http://en.wikipedia.org/wiki/B-treehttp://en.wikipedia.org/wiki/Hash_tablehttp://en.wikipedia.org/wiki/Red_black_tree JSON is a really superficial thing that's unrelated to the fundamental concepts of a database.Thanks for the link. From what I have read, it sound a lot like xml, and json. Link to comment Share on other sites More sharing options...
davej Posted August 25, 2014 Share Posted August 25, 2014 Thanks for the link. From what I have read, it sound a lot like xml, and json. XML and JSON are both text. Data structures are not text. Link to comment Share on other sites More sharing options...
L8V2L Posted August 25, 2014 Author Share Posted August 25, 2014 (edited) XML and JSON are both text. Data structures are not text.A lot of wizards would argue against that. Edited August 25, 2014 by L8V2L Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now