Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数组中获取和匹配值_Javascript_Arrays - Fatal编程技术网

Javascript 从数组中获取和匹配值

Javascript 从数组中获取和匹配值,javascript,arrays,Javascript,Arrays,我有一个数组,如下所示: 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"] }]; 我有两个变量: v

我有一个数组,如下所示:

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类值与“item1”匹配,那么var元素值应该与其元素匹配,如下所示:

若为(class==Data.class),则元素应与其附近的Data.element匹配


有什么想法吗?

首先,您需要修复数据

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
    }
}
var myclass=“item3”//类是一个保留字

对于(var i=0;i这应该是您的数据

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
            }
        }
    }
}
var class='item1';
var元素='a';
对于(变量i=0;i
您的
数据
变量错误。如何将相同的键/值对重复4次。将只存储最后一个键/值对。
数据
数组中的对象重新定义
“类”
“元素”
。你是说每一行都是数组中一个单独的对象吗?是的,freejosh和它的最佳结构应该是什么mohkhanIt应该是这样的var数据=[{“类”:“项1”,“元素”:[“a”,“b”,“c”,“d”,“e”]},{“类”:“项2”,“元素”:[“a”,“b”,“c”,“c”,“d”,“e”]},{“类”:“项3”,“元素”:[“a”,“b”,“c”,“d”,“e”]},{“Class”:“item4”,“element”:[“a”,“b”,“c”,“d”,“e”]}}];好吧,你现在想做什么……这取决于你。你没有指定你想要什么。你能检查一下并告诉我这有什么问题吗?它不接受同一个元素的数据