2012-04-07 2 views
4

Я пытаюсь написать сценарий, который добавляет левую часть строки и проверяет ее с правой стороны.Сумма строки одноразрядных чисел в javascript?

Например:

var left = "12345" 
var right = "34567" 

мне нужно сделать какую-то функцию суммы, которая добавляет 1 + 2 + 3 + 4 + 5 и проверяет, если он равен 3 + 4 + 5 + 6 + 7.

У меня просто нет подсказки, как это сделать.

Я думаю, что нужно использовать цикл для перебора чисел, таких как для (вар я = 0, длина = left.length; я < длину, я ++)

Но я не уверен, как добавить каждый номер оттуда.

РЕДАКТИРОВАТЬ Вал фактически вытягивается из поля. так вар слева = document.blah.blah

+0

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

+0

Вам не нужен разделитель. left.split ("") => ['1', '2', '3', '4', '5'] –

+0

@Faris делиметр не требуется. 'left.split ('')' – nathanjosiah

ответ

8

DEMO

var left = "12345" 
var right = "12345" 

function add(string) { 
    string = string.split('');     //split into individual characters 
    var sum = 0;        //have a storage ready 
    for (var i = 0; i < string.length; i++) { //iterate through 
     sum += parseInt(string[i],10);   //convert from string to int 
    } 
    return sum;        //return when done 
} 

alert(add(left) === add(right));​ 
+2

Добавьте основание к вашему 'parseInt()'. Кроме того, этот вопрос воняет домашним заданием, поэтому было бы полезно, чтобы ОП научился кодировать это, вместо того, чтобы просто копировать/вставлять ваше решение (я не говорю, что ваши решения ошибочны, он отлично работает). – Blender

+0

Спасибо! это было прекрасно! – Umeed

0
  1. Найти длину строки
  2. затем в темп переменной хранить значение Pow (10, длина-1)
  3. , если вы примените функцию модуля (левая% temp), вы получите последнюю значащую цифру
  4. вы можете использовать эту цифру, чтобы добавить
  5. reca т процесс до длины строки слева 0 6 Повторите все шаги для правой, а затем сравнить значения

Примечание: преобразовать строку в целое, используя функцию ParseInt

1
var sum = function(a,b){return a+b} 

function stringSum(s) { 
    var int = function(x){return parseInt(x,10)} 
    return s.split('').map(int).reduce(sum); 
} 

stringSum(a) == stringSum(b) 
+0

Я просто хотел опубликовать что-то подобное. Элегантный! – kon

Смежные вопросы