2014-06-25 57 views
-5

我有一个数组和JSON,试图匹配JSON值与数组值,如果匹配我需要打印它的值。 阵列:如何匹配JSON数组的值

Arr = ["a","b","c"]; 

JSON:

{ 
     "Acol": { 
      "cat": [{ 
       "val": "d" 
      }, { 
       "val": "c" 
      }] 
     } 
    } 

JS:

for (var i = 0; i < Arr.length; i++) { 
     for (var j = 0; j < cate.length; j++) { 
      if (Arr[i] == cate[j]) { 
       console.log(cate[j].val) 
      } 
     } 
    } 

输出需要被印刷是 'c' 的

+2

这不是JSON,这是一个JavaScript数组文本。 – Alnitak

+2

我们提供帮助,而不是免费的工作。 – melancia

+0

问题是:写给我看? – domokun

回答

1

试试这个代码

var Arr = ["a","b","c"];  
var cate={ 
      "Acol": { 
        "cat": [ 
          { 
           "val": "d" 
          }, 
          { 
            "val": "c" 
          } 
          ] 
        } 
        } 


    for (var i = 0; i < Arr.length; i++) 
    { 
     for (var j = 0; j < cate.Acol.cat.length; j++) 
     { 
      if (Arr[i] == cate.Acol.cat[j].val) 
      { 
       console.log(cate.Acol.cat[j].val) 
      } 
     } 
    } 
1
// if you haven't parsed your JSON, parse it. 
var json = '{"Acol":{"cat":[{"val":"d"},{"val": "c"}]}}' 
var obj = JSON.parse(json); 

// not sure, is this meant to be `cate` or `cat`? I've used `cate` because 
// that was in your code. This was one of the causes of your problems. It's called 
// cat in your JSON... 
var cate = obj.Acol.cat; 

for (var i = 0; i < Arr.length; i++) { 
    for (var j = 0; j < cate.length; j++) { 

    // make sure you check the `val` property here 
    if (Arr[i] == cate[j].val) { 
     console.log(cate[j].val) 
    } 
    } 
} 

Demo