我需要检查一下我从PHP获得的数字数组中是否存在数字,如果是,则呈现来自iosocket的数据。但由于某些原因,这段代码不起作用。 数组返回20,25,要检查的数字是20 f.example
<script>
var negozi_seguiti = <?php echo json_encode($negozi_seguiti); ?>;
var post = io('http://1clickfashion.com:3002');
post.on("test-channel:App\\Events\\Post", function(message){
// increase the power everytime we load test route
alert(negozi_seguiti);
if (jQuery.inArray(negozi_seguiti, message.data.negozio) == -1) {
$('#timeline').addClass("timeline");
$('#timeline').prepend(message.data.timeline);
$('#rocket').hide();
}
});
</script>
我错了什么?
答案 0 :(得分:2)
你误用了inArray
,你反驳了论点,就像这样使用它:
var arr = [20, 21];
console.log($.inArray(20, arr))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我还建议你使用indexOf
,它的工作方式相同,但直接在数组上调用,可以降低犯这样错误的风险:
var arr = [20, 21];
console.log(arr.indexOf(20));
它使你的代码更清晰,你摆脱了jQuery,最后它是faster。
答案 1 :(得分:0)
如果您在数组negozi_seguiti
变量中获得了适当的价值,那么您需要更改$.inArray('search_value', 'yourarray')
,如下所述。
var negozi_seguiti = <?php echo json_encode($negozi_seguiti); ?>;
var post = io('http://1clickfashion.com:3002');
post.on("test-channel:App\\Events\\Post", function(message) {
// increase the power everytime we load test route
alert(negozi_seguiti);
if (jQuery.inArray(message.data.negozio, negozi_seguiti) == -1) {
$('#timeline').addClass("timeline");
$('#timeline').prepend(message.data.timeline);
$('#rocket').hide();
}
});