如何匹配Array与JSON的值

时间:2014-06-25 10:46:10

标签: javascript jquery arrays json

我有一个Array和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)
            }
        }
    }

需要打印的输出是&#39; c&#39;

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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)
           }
      }
    }