Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 简单数组和条件_Javascript_Arrays - Fatal编程技术网

Javascript 简单数组和条件

Javascript 简单数组和条件,javascript,arrays,Javascript,Arrays,所以我是个新手,我需要一些基本的帮助。我想做一个程序来检查房间是空的还是有人住。我不知道我是否可以用所有的空闲房间来做一个变量,或者我应该用另一种方法来做。我有点困在解决这个问题上了 function action() { var room = document.getElementById('text'); var free = [1, 2, 3]; if (room.value == free) { alert('Hello'); } else

所以我是个新手,我需要一些基本的帮助。我想做一个程序来检查房间是空的还是有人住。我不知道我是否可以用所有的空闲房间来做一个变量,或者我应该用另一种方法来做。我有点困在解决这个问题上了

function action() {
    var room = document.getElementById('text');
    var free = [1, 2, 3];
    if (room.value == free) {
        alert('Hello');
    } else {
        alert('Taken');
    }
}

document.getElementById('button').onclick = function() {
    action();
}

我想问一下,是否可以将我输入的变量与其他变量与空闲房间列表进行比较?如果不可以,那么如何进行比较?

您不能将数字与数组进行比较。您需要检查您的号码是否在数组中:

if (free.indexOf(room.value) > -1)
此外,假设您使用的是文本字段,则需要先将
room.value
转换为数字(而不是字符串),然后再检查:

if (free.indexOf(+room.value) > -1)
您可以在MDN上了解更多信息。

如果(room.value==free)行将字符串(值)与数组进行比较。这通常不是真的

要在数组中查找值,请使用
array#indexOf
。它进行严格的比较,因此由于数组中的值是数字,因此必须确保值也是数字

所以

一元
+
是将字符串转换为数字的一种方法。另一个是
parseInt
,它允许您指定基数(基数):


你还有其他选择;列出了各种选项及其优缺点。

您可以试试这个。更进一步,您可以从免费房间列表中删除房间号,并将其推入已入住房间列表中

函数操作(){
var isRoomAvailable=false;
var room=document.getElementById('text').value;
var freeRoom=[1,2,3];//4-10个房间都有人住。
var takenRooms=[4,5,6,7,8,9,10];
对于(变量i=0;i
输入房间号(1-10):

搜索房间
您可能应该使用0和1系统来存储房间是否被占用。所以0是免费的,1是免费的,反之亦然,这取决于你的喜好。因此,它所要做的就是测试数组中房间的值是0还是1

如何将房间作为属性
data-*
存储在元素上?输入数据不清楚。用户是否应该在文本字段中引入房间号?
free.indexOf(room.value)>-1
用户在文本字段中引入房间号类似的内容可能欢迎使用堆栈溢出。我碰巧喜欢将此想法作为替代解决方案,因此+1.:)或者,如果希望将其轻松切换为-1^2是1,而1*-1是-1:,则可以使用-1和1。)
if (free.indexOf(+room.value) != -1) {
    // Yes it's there
}
if (free.indexOf(parseInt(room.value, 10)) != -1) {
    // Yes it's there
}