【问题标题】:How to output the contents of an array as plaintext using javascript/jQuery如何使用 javascript/jQuery 将数组的内容输出为纯文本
【发布时间】:2014-09-21 09:58:54
【问题描述】:

如何获取一个数组,通过将每个数组编号向前移动 i 个位置来修改它,如果 i 大于 26 则减去 26,然后以纯文本形式显示该数组。

http://jsfiddle.net/clarinetking/kLy83oxj/4/

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 text;
$('#assign').click( function() {
    text = $('#Input').val();
    num = $('#Number').val();
});

$('#rotate').click( function() {
    for(i=0;i<alphabet.length;i++) {
        alphabet[i] = alphabet[i+num];
        if (alphabet[i]>26){
            i=i-26;
        }
    }
});
$('#solve').click( function() {
    alphabet.toString();
        $('#Output').append(alphabet);
});

这有点难以解释。对不起。这基本上是一个凯撒密码的例子,即想象一个字母轮。顺时针移动 i 位置的轮子,每个字母在字母表中都有一个新位置。我正在尝试扭转这个过程。

哦,顺便说一句,很多人问我为什么只使用 html。简短的回答,这就是我所理解的,除了一些帕斯卡:)

【问题讨论】:

  • 在发布之前,您至少可以修复小提琴中的语法错误......
  • 嗯,我不太清楚他们在那里开始,否则我不会有 xD

标签: javascript jquery html arrays plaintext


【解决方案1】:

您的代码中有 2 个语法错误:

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 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'];

因为javascript中的所有字符串都需要用'或"括起来,否则它们将被视为变量。那么你的第二个语法错误:

$('#solve').click( function() {
    alphabet.toString();
        $('#Output').append(alphabet);
    });
});

应该是:

$('#solve').click( function() {
    alphabet.toString();

    $('#Output').append(alphabet);
});

(你关闭了一对多的功能)

【讨论】:

  • 还有一个,num 没有全局声明。
  • 噢噢噢噢。我从来没有注意到。谢谢 :) 当我赶时间时,我会这样做。这并不能解决我的问题,但确实可以帮助我更好地理解它,所以谢谢
  • Brasofilo 是对的,谢谢!通过将var num; 放置在var text; 下方来解决此问题
【解决方案2】:

我不确定我是否明白你的意思,但如果缺少功能,你能检查一下这个小提琴,我会添加它。我这样做是为了当您单击旋转时,它会将第一个字母放在最后一部分。尝试单击然后求解以查看输出。

http://jsfiddle.net/kLy83oxj/6/

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 text;
jQuery(document).ready(function(){
$('#assign').click( function() {
    text = $('#Input').val();
    num = $('#Number').val();
});

$('#rotate').click( function() {
    var first = alphabet[0];
    alphabet.splice(0,1);
    alphabet.push(first);
});
$('#solve').click( function() {
        $('#Output').html(alphabet.join(','));
    });
});

要了解更多关于 javascript 数组的信息,请从这里开始http://www.w3schools.com/js/js_arrays.asp

【讨论】:

  • 这比我得到的要远得多:) 谢谢 :D 它是如何工作的,所以我可以修改它?什么是 splice、push、.join() 以及为什么是引号中的数组?非常感谢:)
  • @Clarinetking,您可以在手册中找到这些答案。我注意到你不知道如何使用浏览器控制台,需要知道 JSfiddle 上的 TidyUp 和 JSHint 按钮。祝你好运!
  • 哦,我确实使用 JSHint,但有些错误消息是模棱两可的。但是,我不知道您可以在 jsfiddle 上使用浏览器控制台工具,所以感谢您:D
  • 要了解更多关于 javascript 数组 w3schools.com/js/js_arrays.asp 的信息,也可以尝试做一些谷歌。 Google 是每个人的朋友 :)
  • 谦虚的请求 - 请不要分享到 w3schools 的链接。它们包含许多过时和误导性的信息。如果你想学习js数组,可以参考MDN DOcs之类的官方
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-12
  • 1970-01-01
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
相关资源
最近更新 更多