How to check against a value in an array?

JavaScript and client side scripting.

Moderator: General Moderators

Post Reply
lovelf
Forum Contributor
Posts: 153
Joined: Wed Nov 05, 2008 12:06 am

How to check against a value in an array?

Post by lovelf »

Code: Select all

var b = 'valc';
var a = new Array();
a["vala"] = 0.044; a["valb"] = 0.057; a["valc"] = 0.056;
How to retrieve from the array the value of var b which it's value on the array is 0.056 ?

var b can be set to 'vala', or 'valb', which are written on the array as 0.044, and 0.057

Thanks.
User avatar
Apollo
Forum Regular
Posts: 794
Joined: Wed Apr 30, 2008 2:34 am

Re: How to check against a value in an array?

Post by Apollo »

Code: Select all

alert( a[b] );
User avatar
kaszu
Forum Regular
Posts: 749
Joined: Wed Jul 19, 2006 7:29 am

Re: How to check against a value in an array?

Post by kaszu »

In javascript arrays can't have keys like strings, this is why:

Code: Select all

var a = new Array();
a["asd"] = 5;
alert(a.length); //alerts 0
Better use object for that instead.
lovelf
Forum Contributor
Posts: 153
Joined: Wed Nov 05, 2008 12:06 am

Re: How to check against a value in an array?

Post by lovelf »

kaszu, I was looking for

Code: Select all

var c = 'asd';
var a = new Array();
a["asd"] = 5;
alert(a[c]); //alerts 5
User avatar
kaszu
Forum Regular
Posts: 749
Joined: Wed Jul 19, 2006 7:29 am

Re: How to check against a value in an array?

Post by kaszu »

Yes, what I mean is you are using Array instead of {} , which is incorrect, because Array can't handle non integer keys and it has additional functions, which won't work anymore. Array doesn't give you any benefit, but can complicate debugging later.
I'm just saying that for this purpose Object should be used.

Code: Select all

var c = 'asd';
var a = {};
a["asd"] = 5;
alert(a[c]); //alerts 5
User avatar
VladSun
DevNet Master
Posts: 4313
Joined: Wed Jun 27, 2007 9:44 am
Location: Sofia, Bulgaria

Re: How to check against a value in an array?

Post by VladSun »

[js]a['b'] = 'c'[/js]
is an object construction/operation indeed.
Equivalent of
[js]a.b = 'c'[/js]

And an Array is also an object.
There are 10 types of people in this world, those who understand binary and those who don't
User avatar
kaszu
Forum Regular
Posts: 749
Joined: Wed Jul 19, 2006 7:29 am

Re: How to check against a value in an array?

Post by kaszu »

That's true.
Other developers may not know that somewhere in a script it's used as object and may try to use array function ('shift', 'pop', 'splice', 'length', etc.) which will return unexpected value as a result.
I consider it as a bad practice to use Array where Object is needed.
Post Reply