【问题标题】:JavaScript converting an array of letters to numbersJavaScript 将字母数组转换为数字
【发布时间】:2015-01-24 23:46:23
【问题描述】:

我一直在研究 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 循环中做错了什么?

【问题讨论】:

  • 你能创建一个 jsfiddle 来暴露问题吗?我们需要所有的功能(unpermute1 也是)对答案有信心
  • 看起来有更简单的方法可以做到这一点 -> jsfiddle.net/adeneo/684kwLfb/1

标签: javascript function innerhtml onmouseover


【解决方案1】:

polygon.split(""); 返回一个数组。您必须将其分配给某物才能使用它。也许你想要:

polygon = polygon.split("");

仅供参考,您可以像这样将一些调用链接在一起:

polygon = polygon.toLowerCase().split("");

此外,您的函数permuter1() 不会对其计算的结果做任何事情以使其可见。如果您想在网页中看到它,则必须将数组重新组合成一个字符串,其中包含 polygon.join("") 之类的内容,然后将其分配回某个 DOM 元素的 .innerHTML

【讨论】:

  • @jonathanbasile - 由于您可能是新来的,您是否知道答案左侧的绿色复选标记表示哪个答案对您的帮助最大?
【解决方案2】:

正如@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);
});

JSFIDDLE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多