考虑我有一个像这样的json数组
["map14","map20","map21","map22","map23","map24","map25","map31","map32","map33","map34","map35","map36","map37","map40","map41","map42","map46","map49","map50"]
使用这个json数组我需要检查我传递的值是否存在需要做一些操作或者其他一些操作....
javascript代码:
function pop(e,id) {
$.getJSON( 'layoutcheck.php', { some_get_var: 1 }, function(output){
var i=0, total = output.length;
for ( i = 0; i < total; ++i ) {
if(isArray(output[i]==id)) {
// do soome stuff if the value exists in the database
}
else{
// if not exists some other operation
}
}
});
}
</script>
layoutcheck.php将从数据库中获取信息并创建一个json数组..
但代码无法显示输出..请纠正我..
感谢
答案 0 :(得分:0)
isArray()
不会检查对象是否在数组中,但是对象是否为数组。
这意味着会检查output[i]==id
(true
或false
)。
它们总是不是数组;这意味着你总是会去条件的else
部分。
您可以尝试使用以下内容:
if(output.indexOf(id) != -1) {
// do soome stuff if the value exists in the database
}
else{
// if not exists some other operation
}
而不是for
循环。
答案 1 :(得分:0)
如果您想知道数组id
中是否有output
,请使用Javascript的内置indexOf()
方法:
if (output.indexOf(id) != -1) {
// do soome stuff if the value exists in the database
} else {
// if not exists some other operation
}
您编写它的方式,您将为else
中与output
不匹配的每个值执行id
子句。