0

I have an array which is like this:

var Data=[{
    "Class":"item1","element":["a","b","c","d","e"],
    "Class":"item2","element":["a","b","c","d","e"],
    "Class":"item3","element":["a","b","c","d","e"],
    "Class":"item4","element":["a","b","c","d","e"]
}];

I have two variables:

var class='item1';
var element='a';

I want a condition that if var class values match "item1" then var element value should be matched with its elements only like:

if (class == Data.Class) then element should be matched with Data.element near it

Any ideas?

4
  • 5
    Your Data variable is wrong. How can you have same key/value pairs 4 times. Only the last one will be stored. Commented Jul 6, 2013 at 13:10
  • The object in your Data array redefines "Class" and "element". Did you mean for each line to be a separate object in the array? Commented Jul 6, 2013 at 13:10
  • yes freejosh and what should be best structure for it mohkhan Commented Jul 6, 2013 at 13:13
  • It should be like this var Data=[ { "Class":"item1", "element":["a","b","c","d","e"] }, { "Class":"item2", "element":["a","b","c","d","e"] }, { "Class":"item3", "element":["a","b","c","d","e"] }, { "Class":"item4", "element":["a","b","c","d","e"] } }]; Commented Jul 6, 2013 at 13:14

2 Answers 2

2

This should be your data...

var Data= [
    { "Class":"item1","element":["a","b","c","d","e"] },
    { "Class":"item2","element":["a","b","c","d","e"] },
    { "Class":"item3","element":["a","b","c","d","e"] },
    { "Class":"item4","element":["a","b","c","d","e"] },
];

Then you can iterate over it and find your value. Like this

var class='item1';
var element='a';
for(var i = 0; i < Data.length; ++i){
    if (Data[i].Class == class){
        for( var j = 0; j < Data[i].element.length; ++j){
            if ( Data[i].elements[j] == element){
               // do whatever
            }
        }
    }
}
Sign up to request clarification or add additional context in comments.

1 Comment

Can you please check and tell me what is wrong with this its not accepting the data for same element jsfiddle.net/StaHg
0

First of all you need to fix your data

var Data= [
    { "Class":"item1","element":["a","b","c","d","e"] },
    { "Class":"item2","element":["a","b","c","d","e"] },
    { "Class":"item3","element":["a","b","c","d","e"] },
    { "Class":"item4","element":["a","b","c","d","e"] },
];

Now it is an array of objects.

Then you can look into that array, for example with a for loop

var myclass = "item3"; // class is a reserved word
for (var i=0; i<Data.length;i++) {
    if (Data[i].Class == myclass) {
        // do something with that its data Data[i].element
    }
}

1 Comment

well whatever you want to do now.. thats up to you. You didn't specify what you want with that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.