确定函数内的数组数

时间:2016-02-02 17:41:28

标签: javascript arrays html5

我在这里有这个功能:



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>
&#13;
&#13;
&#13;

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

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

我希望它能像这样工作:

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

如果您运行原始功能并输入&#34; John Doe&#34;它将它分成约翰&#34;和&#34; Doe&#34;,但是如果你将输入更改为&#34; John Doe Jr。&#34;它仍然会以&#34; John&#34;和&#34; Doe&#34;。我想让它回归&#34; John&#34;和&#34; Doe Jr。&#34;

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

有什么想法吗?

1 个答案:

答案 0 :(得分: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