我从网页客户端
向SOCKET.IO服务器发送一个数组var trads = 4000+','+7000+','+6000+','+2000+','+4398+','+6094;
var temp = new Array();
temp = trads.split(',');
socket.emit("assign", temp);
我的SOCKET.IO服务器接收数组并发送到其他网页 client.php :
socket.on("assign", function(data){
var temp = data;
socket.broadcast.emit("check", temp);
});
在 client.php (在数组中有输入值)我想在控制台中显示一条消息:
<html>
<body>
<input type="text" id="num" value="4000">
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js">
</script>
<script>
var socket = io.connect(URL_SERVER);
socket.on("check",function(data){
var temp = data;
var idtr = $("#num").val();
console.log(temp);
if(idtr in temp){
console.log("It has value");
} else {
console.log("It has no value");
}
});
</script>
</body>
</html>
但它仍然显示“它没有价值”的信息。我该如何解决?
答案 0 :(得分:0)
您可以使用indexOf()
if(temp.indexOf(idtr) > -1){
console.log("It has value");
} else {
console.log("It has no value");
}
indexOf返回索引。因此,您可以使用它来访问您的价值。
编辑:我错过了-1
条件。 indexOf return -1
如果找不到任何内容
答案 1 :(得分:0)
我发现解决方案根据indexOf()结果进行验证。
var index = temp.indexOf(idtr);
if(index>=0){
console.log("It has value");
} else {
console.log("It has no value");
}