【问题标题】:Determining Number of Arrays within a Function确定函数中的数组数量
【发布时间】:2016-02-02 17:41:28
【问题描述】:

我这里有这个功能:

function nameSplit() {
    var option_result = document.getElementById("fname").value;
    var option_array=option_result.split(" ");
    document.getElementById('first_name').value = option_array[0];
    document.getElementById('last_name').value = option_array[1];
}
function myFunction() {
    var option_result = document.getElementById("fname").value;
    document.getElementById("demo").innerHTML = option_result.length;
    document.getElementById("demo2").innerHTML = option_array.prototype.length;
}
<form>
    <label>Name:</label> 
    <input type="text" id="fname">
    <input type='button' onclick='nameSplit()' value='Change Text'/>   
</form>
<br>
    <input id="first_name" name="fid" value="" />
    <input id="last_name" name="sid" value="" />
<br>
    option_result: <p id="demo"></p>
    option_array: <p id="demo2"></p>
    <button onclick="myFunction()">Try it</button>

如您所见,我的option_array.prototype.length; 没有返回任何内容。所以我不知道解释这一点的最佳方法,但简而言之,我想确定函数中有多少个数组,并将其作为被拉取的数字

document.getElementById('last_name').value = option_array[1];

我希望它像这样工作:

document.getElementById('last_name').value = option_array[(Number of total arrays)];

如果您运行原始函数并输入“John Doe”,它会将其拆分为“John”和“Doe”,但如果您将输入更改为“John Doe Jr”。它仍会以“John”和“Doe”返回。我希望它返回“John”和“Doe Jr”。

我试图创建一个运行 option_array[1] + " " + option_array[2]; 的脚本,但如果一个人只使用数组的两个部分,第三部分返回未定义。

有什么想法吗?

【问题讨论】:

  • 您的 innerhtml 行是一次公平的调试尝试,但它们似乎没有做任何有用的事情。 (我不确定prototype.length 行是否符合您的要求。)如果您为option_array.length 添加一个简单的测试 - 检查数组长度的常用方法会怎样?
  • 我试过 option_array.length ,我也得到一个空白的结果。
  • 接下来发生了一些不确定的事情。最好检查 (1) 你的 option_array 是否进入这个函数,并且 (2) anything else does 出现在那个位置。顺便说一句,请参阅 Mozilla's documentation 以获取检查数组长度的示例。
  • 哇。我忘了将var option_array=option_result.split(" "); 添加到函数myFunction() 中。在我这样做然后运行document.getElementById("demo2").innerHTML = option_array.length; 之后,它返回了数组的数量。
  • 我继续根据获得的新信息编写 if else 语句。我现在有另一个问题,你有什么想法@Jongware JSfiddle Link

标签: javascript arrays html


【解决方案1】:

嗯,我认为这个功能是检索我需要的信息的好方法,但我的老板在我的办公桌前停下来告诉我有一个更简单的方法,并给了我一些信息来做研究,所以我继续建立一个新的..

这里是任何感兴趣的人的代码:

function nameSplit() {
        var first_name = document.getElementById("first_name");
        var last_name = document.getElementById("last_name");
        var fname = document.getElementById("fname");
        var myfname = fname.value.trim();
    if (myfname.indexOf(" ") < 0)
    {
        first_name.value = fname.value.trim();
        last_name.value = "Undefined";
    } else {
        first_name.value = fname.value.substring(0, fname.value.indexOf(" "));
        last_name.value = fname.value.substring((fname.value.indexOf(" ") + 1), fname.value.length);
    }
}
<form>
    <label>Name:</label> 
    <input type="text" id="fname">
    <input type='button' onclick='nameSplit()' value='Submit'/>   
</form>
<br>
    <input id="first_name" value="" />
    <input id="last_name" value="" />

感谢您的帮助@jongware

【讨论】:

    猜你喜欢
    • 2012-01-12
    • 2012-06-12
    • 2016-02-14
    • 2013-01-13
    • 1970-01-01
    • 2014-06-27
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多