JavaScript 将字母数组转换为数字

JavaScript converting an array of letters to numbers

本文关键字:转换 数字 数组 JavaScript      更新时间:2023-09-26

我一直在研究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

正如@jfriend00所说,split 返回一个数组,你必须对结果做一些事情。你可以做这样的事情:

var polygon=$("#permutable").html();
polygon = polygon.toLowerCase();
var polygonArray=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};
var result="";
    for (index=0; index<polygon.length;index++) {
        if(converter[polygonArray[index]]){
        result=result+converter[polygonArray[index]];
        console.log(result);
        }
    }
    if(result)$("#permutable").html(result);
});

吉斯菲德尔