我有一个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;
答案 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)
}
}
}
答案 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)
}
}
}