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
}