【问题标题】:Javascript: Can I find the index of a number in an array based on a prompt input?Javascript:我可以根据提示输入找到数组中数字的索引吗?
【发布时间】:2013-11-27 17:05:46
【问题描述】:

有没有办法将提示中的输入用作数组的索引,然后创建一个没有这个数字的新数组?

我目前的样子是这样的,我得到的索引是-1:

var remNum = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var input = prompt("pick a number" + " ");
var position = remNum.indexOf(input);
alert("this is the index of your input: " + position);

【问题讨论】:

    标签: javascript arrays indexing prompt indexof


    【解决方案1】:

    你需要convert the user input to a number,因为prompt() returns a String.

    var remNum = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    var input = parseInt(prompt("pick a number" + " "), 10);
    var position = remNum.indexOf(input);
    alert("this is the index of your input: " + position);
    

    请注意,对于调试代码,console.log()(作为the larger suite of dev tools that ship with your browser 的一部分)比alert() 更有效

    【讨论】:

      【解决方案2】:
      var input = parseInt(prompt("pick a number" + " "), 10); //convert to int!
      var newArray = [];
      for (var i=0; i<remNum.length; i++) {
          if (i != input) newArray.push(remNum[i]);
      }
      

      这将遍历数组并推送所有没有提示索引的数字。它还将确保输入不会超出范围。

      【讨论】:

      • @MattBall OP 说“然后创建一个没有这个数字的新数组?”我以为他们想保持原始数组完好无损?
      【解决方案3】:

      将输入转换为整数后:

      var remNum = [1, 2, 3, 4, 5, 6, 7, 8, 9];
      var input = parseInt(prompt("pick a number" + " "));
      

      你可以使用splice()来移除元素:

      var position = remNum.indexOf(input);
      remNum.splice(position, 1);
      

      错误检查留给读者作为练习。

      【讨论】:

        猜你喜欢
        • 2015-12-13
        • 2020-09-09
        • 1970-01-01
        • 1970-01-01
        • 2019-07-31
        • 2017-06-28
        • 1970-01-01
        • 2014-01-13
        • 1970-01-01
        相关资源
        最近更新 更多