2014-09-21 3 views
-1

Как взять массив, изменить его, перемещая каждый номер массива вперед в i-ых местах, а если i больше 26, чем вычесть 26, а затем отобразить массив как это было бы в открытом виде.Как выводить содержимое массива в виде открытого текста с помощью javascript/jQuery

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. Короткий ответ, вот и все, что я понимаю, кроме некоторого pascal :)

+0

Вы могли бы по крайней мере основных синтаксических ошибок в скрипке, прежде чем отправлять его ... –

+0

Ну, я не очень хорошо знал, что они были там, чтобы начать с того, что в противном случае у меня не было бы xD – Clarinetking

ответ

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

+0

Это чертовски много, чем я получил :) Спасибо: D Как это все работает, поэтому я могу изменить его? Что такое splice, push, .join() и почему массив в кавычках? Спасибо так много :) – Clarinetking

+0

@Clarinetking, эти ответы вы найдете в руководстве. Я заметил, что вы не знаете, как использовать консоль браузера, и вам нужно знать кнопки TidyUp и JSHint на JSfiddle. Удачи! – brasofilo

+0

О, я использую JSHint, но некоторые сообщения об ошибках неоднозначны. Однако я не знал, что вы можете использовать инструменты консоли браузера на jsfiddle, поэтому спасибо за это: D – Clarinetking

2

У вас есть 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); 
}); 

(вы закрыли один ко многим функциям)

+1

Есть еще один, 'num' не объявлен глобально. – brasofilo

+0

ooooooh. Я никогда не замечал. Спасибо :) Я делаю это, когда я спешу.Это не решает мою проблему, но помогает мне лучше ее понять, поэтому спасибо – Clarinetking

+0

Brasofilo прав, спасибо! Исправьте это, поместив 'var num;' под 'var text;' –