表单以查找值在javascript数组中的位置

表单以查找值在javascript数组中的位置,javascript,function,indexof,Javascript,Function,Indexof,我试图创建一个只需要一个字母的表单,并在一个基本上是字母表的数组中找到它的位置 我写了一些简单的代码: var alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]; var letter = "h"; var letterPosition = alphabet.indexOf(letter); document.w

我试图创建一个只需要一个字母的表单,并在一个基本上是字母表的数组中找到它的位置

我写了一些简单的代码:

var alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
var letter = "h";
var letterPosition = alphabet.indexOf(letter);

document.write(letterPosition);
演示基本功能。但是,我不知道如何将其放入函数get中,并使var字母等于表单输入中的值

我希望它返回数组中的位置,这样我就可以在if/elsethat中写入一个循环,它将打印数组中输入值之后的所有值。

构建一个演示 制作一个演示

试试:字母表[alphabet.indexOfletter]或代码字母表[letterPosition]

关于您提到的循环:使用该值,您可以使用slice方法为您提供字母表数组中剩余字符的子集。因此:无需循环来确定数组中剩余的元素:

var subset = alphabet.slice(indexOf([a letter]));
为了节省键入的时间,您还可以这样声明字母表数组:

var alphabet 'abcdefghijklmnopqrstuvwxyz'.split('');
尝试:字母表[alphabet.indexOfletter]或代码字母表[letterPosition]

关于您提到的循环:使用该值,您可以使用slice方法为您提供字母表数组中剩余字符的子集。因此:无需循环来确定数组中剩余的元素:

var subset = alphabet.slice(indexOf([a letter]));
为了节省键入的时间,您还可以这样声明字母表数组:

var alphabet 'abcdefghijklmnopqrstuvwxyz'.split('');

不确定上下文,这个加载页面是否不涉及AJAX?我可能过于简单化了:

<input type="text" id="whichLetter" />
<script type="text/javascript">

function getLetterPosition(allLetters, letter)
{
  return allLetters.indexOf(letter);
}

var alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
var letter = document.getElementById("whichLetter").value;
var letterPosition = getLetterPosition(alphabet, letter);

</script>

我喜欢javascript。

不确定上下文,这是一个没有AJAX参与的页面加载吗?我可能过于简单化了:

<input type="text" id="whichLetter" />
<script type="text/javascript">

function getLetterPosition(allLetters, letter)
{
  return allLetters.indexOf(letter);
}

var alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
var letter = document.getElementById("whichLetter").value;
var letterPosition = getLetterPosition(alphabet, letter);

</script>
我喜欢javascript。

或者你也可以

let alphabetPosition = (text) => text.toUpperCase().replace(/[^A-Z]/g, '').split('').map(ch => ch.charCodeAt(0) - 64).join(' ');
或者你也可以

let alphabetPosition = (text) => text.toUpperCase().replace(/[^A-Z]/g, '').split('').map(ch => ch.charCodeAt(0) - 64).join(' ');

你想解决什么问题?有更好的方法来完成你的要求,只要它们符合你的实际问题。@HansBPUFAL这里是完整的场景:我将有一个可编辑的表格单元格,有人将在其中输入一个字母,根据该字母,它后面的所有单元格将更新为后续字母,直到z或单元格数用完为止。我认为字母表数组可以用在for循环中来实现这一点。我一直在努力独立地写每一部分,一旦我对每一部分有了更好的理解,就让它们一起工作。也许这不是最好的方法?你想解决什么问题?有更好的方法来完成你的要求,只要它们符合你的实际问题。@HansBPUFAL这里是完整的场景:我将有一个可编辑的表格单元格,有人将在其中输入一个字母,根据该字母,它后面的所有单元格将更新为后续字母,直到z或单元格数用完为止。我认为字母表数组可以用在for循环中来实现这一点。我一直在努力独立地写每一部分,一旦我对每一部分有了更好的理解,就让它们一起工作。也许这不是最好的方法?你是我的英雄。我将切片更改为var subset=alphabet.sliceletterPosition+1,26;而且效果很好。现在进入下一步!。。你是我的英雄。我将切片更改为var subset=alphabet.sliceletterPosition+1,26;而且效果很好。现在进入下一步!。。嗯,你完全不理解这个问题-我的错,对不起。嗯,你完全不理解这个问题-我的错,对不起。