繁体   English   中英

简单的数组和条件javascript

[英]simple arrays and conditions javascript

所以我是新手,我需要一些基本帮助。 我想制作一个检查房间是否空闲或占用的程序。 我不知道我是否可以使所有免费房间成为一个变量,或者我应该以其他方式这样做。 我有点想解决问题。

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的indexOf()更多信息。

if (room.value == free) 字符串 (值)与array比较 那通常是不正确的。

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

所以

if (free.indexOf(+room.value) != -1) {
    // Yes it's there
}

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

if (free.indexOf(parseInt(room.value, 10)) != -1) {
    // Yes it's there
}

您还有其他选择。 该答案列出了各种选择以及它们的优缺点。

你可以试试看 更进一步,您可以从空闲房间列表中删除已占用的房间号,并将其推入已占用的房间列表中。

 function action() { var isRoomAvailable = false; var room = document.getElementById('text').value; var freeRoom = [1, 2, 3]; // 4-10 are taken rooms. var takenRooms = [4, 5, 6, 7, 8, 9, 10]; for (var i = 0; i < freeRoom.length; i++) { if (room == freeRoom[i]) { alert('Hello, You can take room '+room); isRoomAvailable = true; return; } } if (!isRoomAvailable) alert("Sorry, Room number " + room + " is taken"); } document.getElementById('button').onclick = function() { action() } 
 Enter Room number(1-10): <input type="text" id="text" /> <button id="button">Search Room</button> 

您也许应该使用0和1系统来存储是否占用了房间。 因此,根据您的喜好,0是带走的,1是免费的,反之亦然。 因此,要做的就是测试数组中房间的值是0还是1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM