我一直在研究 JavaScript 中的一个函数,该函数可以在 mouseenter 上排列单词中的字母。我无法完成第一步,即将字母转换为数字以增加它们的值。我首先尝试:
function permuter1(){
var polygon=document.getElementById("permutable").innerHTML;
polygon = polygon.toLowerCase();
polygon.split("");
var converter = {a:0,b:1, c:2,d:3,e:4,f:5,g:6,h:7,i:8,j:9,k:10,l:11,m:12,n:13,o:14,p:15,q:16,r:17,s:18,t:19,u:20,v:21,w:22,x:23,y:24,z:25};
for (index=0; index<polygon.length;index++) {
polygon[index] = converter[polygon[index]];
}
为了测试我只使用过:
document.getElementById("permutable").innerHTML = polygon[0];
在 html 中我有:
<ul>
<li id = "permutable" onmouseenter="permuter1()" onmouseleave="unpermute1()">Browse</li>
</ul>
我希望鼠标悬停会给我 1,但我却得到了 b。所以我尝试了:
for (index=0; index<polygon.length;index++) {
polygon[index]=polygon[index].charCodeAt();
}
相同的结果。我什至尝试过:
var str = "";
for (index=0; index<polygon.length;index++) {
str=str +polygon[index];
}
for (index=0; index<polygon.length;index++) {
polygon[index] = str.charCodeAt(index);
}
同样的结果!我测试了 for 循环之前的所有内容,并且知道它可以工作。我在 for 循环中做错了什么?
最佳答案
polygon.split("");
返回一个数组。您必须将其分配给某些东西才能使用它。也许您想要:
polygon = polygon.split("");
仅供引用,您可以将一些调用链接在一起,如下所示:
polygon = polygon.toLowerCase().split("");
<小时/>
此外,您的函数 permuter1()
不会对其计算的结果执行任何操作以使其可见。如果您想在网页中看到它,则必须使用诸如 polygon.join("")
之类的内容将数组重新连接到一个字符串中,然后将其分配回 某些 DOM 元素的 .innerHTML
。
关于JavaScript 将字母数组转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27152701/