Javascript 如何循环根据每个字母修改文本的替换函数';她在部门的职位是什么?
我试图循环一个函数,该函数将字母与字母表中x位置的字母进行切换[即a+5=f,b+5=g等],但该函数忽略了一些看似随机的字母,并在每个实例中返回未定义的字母 是因为不允许在数组参数内进行数学运算,还是因为我的另一个商标语法错误。我尝试使用返回函数,但这会停止循环的执行 另一个很棒的SO'er给了我目前正在使用的代码,但我不确定是什么原因导致了未定义和遗漏的字母 找到代码Javascript 如何循环根据每个字母修改文本的替换函数';她在部门的职位是什么?,javascript,jquery,html,arrays,loops,Javascript,Jquery,Html,Arrays,Loops,我试图循环一个函数,该函数将字母与字母表中x位置的字母进行切换[即a+5=f,b+5=g等],但该函数忽略了一些看似随机的字母,并在每个实例中返回未定义的字母 是因为不允许在数组参数内进行数学运算,还是因为我的另一个商标语法错误。我尝试使用返回函数,但这会停止循环的执行 另一个很棒的SO'er给了我目前正在使用的代码,但我不确定是什么原因导致了未定义和遗漏的字母 找到代码 $('write')。单击(函数(){ $('#txt').html(函数(i,v){ 对于(x=0;xalphabet数组
$('write')。单击(函数(){
$('#txt').html(函数(i,v){
对于(x=0;xalphabet
数组将保存现实世界中的字母表。
然后我们创建一个字母表数组的副本,并将其存储在cipher
我们从前面剪切num
字母表,并将其推到cipher
的末尾,就像您刚才所做的那样。
(在小提琴中,黑色字母是字母表
数组,粉色字母是密码
数组。)
现在我们在v
现在,对于v
中的每个字符v[x]
,其中x
是索引:
v[x]
在字母表中的位置可以使用
alphabet.indexOf(v[x])
- 对应的密文字符为
通过在该位置获取
cipher
数组中的项来找到。cipher[alphabet.indexOf(v[x])]
- 一个接一个地处理原始字符,并计算相应的
密文字符
,并将其逐个推送到数组n
数组n
被合并,以将其转换为字符串
以备使用
var字母表、文本、数字、密码;
//如果单击更改字母表,请不要在此处初始化字母表
//执行多次操作时将导致错误
jQuery(文档).ready(函数(){
$(“#求解”)。单击(函数(){
字母表=['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'];
text=$('#Input').val();
num=parseInt($('#Number').val(),10);
var x=字母表切片(0,num);
cipher=alphabet.slice();//克隆数组
密码拼接(0,num);
cipher.push.apply(cipher,x);//连接两个数组
$('#CipherSwitch').html(cipher.join(',');
});
$(“#写入”)。单击(函数(){
$('#txt').text(函数(i,v){//html()也将处理'
'
var n=[];
//另一种方法是,当我们有一个数据库的多个实例时,很容易出错
//字符串
对于(var x=0;xTry
在#求解
$('#solve').click(function () {
var text = $('#Input').val();
// cast `num` as `Number`
var num = Number($('#Number').val());
$('#CipherSwitch').html(
rewrite(text, num)[0]
);
});
在#写入
$('#write').click(function () {
var text = $('#Input').val();
// cast `num` as `Number`
var num = Number($('#Number').val());
var _text = $("#txt");
_text.text(
rewrite(text !== _text.text() ? _text.text() : text, num)[1]
);
});
jsFIDLE什么是j
?还可以用var
声明局部变量!!!j只是一个比较变量。我会使用我喜欢的normal,但担心它会干扰早期函数什么是“比较变量”“j
从哪里得到值?对不起,这就是我之所以这样称呼它们,是因为我很笨:P它只是一个与字母表大小相同的变量。长度,但我不想使用它,因为在执行此函数之前数组被修改了。解析什么?我听过很多关于它的事,但从来没有发现它是什么?为什么会有这么多呢?”任何新的变量以及它们的作用是什么?再次感谢您提供了如此巨大的帮助:)我猜我回到办公桌后,您不清楚它是否会更新并解释…抱歉。我确实掌握了大部分,而且它非常智能。只是所有这些新的变量让人困惑:)抱歉,这是一种痛苦:/@Clarinetking解析就像是将句子分解为成分,试图翻译或理解其含义。阅读本文时,您正在进行某种模式识别、词法分析和解析,以理解句子。计算中的解析通常指计算机语言的类似处理试图将其翻译成另一种语言或低级机器语言,以供硬件单元使用。是的,很难在评论中解释……人们最终会写大量的教科书来解释解析:)
var rewrite = function(i, n) {
var a = "abcdefghijklmnopqrstuvwxyz";
var txt = "";
var len = function(c) {
return a.match(new RegExp(c, "i")).index + n > a.length - 1
? a.match(new RegExp(c, "i")).index + n - (a.length)
: a.match(new RegExp(c, "i")).index + n
};
// `CipherSwitch`
var txt = [].slice.call(a.slice(-(a.length -n))
.concat(a.slice(0, n))).join(",");
$.each([].slice.call(i), function(k, v) {
_txt += a.charAt(len(v));
// `Rewrite`
_txt = _txt;
});
return [txt, _txt]
};
$('#solve').click(function () {
var text = $('#Input').val();
// cast `num` as `Number`
var num = Number($('#Number').val());
$('#CipherSwitch').html(
rewrite(text, num)[0]
);
});
$('#write').click(function () {
var text = $('#Input').val();
// cast `num` as `Number`
var num = Number($('#Number').val());
var _text = $("#txt");
_text.text(
rewrite(text !== _text.text() ? _text.text() : text, num)[1]
);
});