2013-07-06 56 views
0

匹配值我有一个数组是这样的:获取和阵列

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"] 
}]; 

我有两个变量:

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

我希望有一个条件,如果VAR类值匹配“物品1”那么var元素的值应该与它的元素匹配,如:

if(class == Data.Class)then元素应该与它附近的Data.element匹配

有何想法?所有你需要修复的

+5

您的'数据'变量是错误的。你怎么能有相同的键/值对4次。只有最后一个将被存储。 – mohkhan

+0

“Data”数组中的对象重新定义了“Class”和“element”。你是否意味着每一行都是数组中的独立对象? – freejosh

+0

yes freejosh和什么应该是它的最佳结构mohkhan – Hushme

回答

2

这应该是您的数据......

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"] }, 
]; 

然后你可以遍历它,找到你的价值。像这样

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 
      } 
     } 
    } 
} 
+0

谢谢你我的结构错了,我失败了 – Hushme

+0

你能检查并告诉我这是什么问题吗?它不接受相同元素的数据http://jsfiddle.net/StaHg/ – Hushme

0

首先你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"] }, 
]; 

现在是对象的数组。

然后你就可以考虑这样做阵列,例如用for

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 
    } 
} 
+0

好的课程已匹配它的元素呢? – Hushme

+0

好吧,无论你现在想做什么..多数民众赞成在你。你没有指定你想要的。 – Zim84