2016-02-19 12 views
-2

Мне нужна помощь в этом скрипте. Я пытаюсь написать программу, где каждый элемент массива присваивается «точке». Я согласовал все массивы и присвоил их переменной. Массив проходит через оператор if для подсчета очков.логика условия оператора if

Для этого примера я пытаюсь получить в общей сложности 6. Однако, когда я запускаю программу, я получаю «2», а не «6» в журнале консоли. Как мне написать условие if, чтобы получить результат 6?

var zero = [1,2,3,5,7]; // 0 
 
var one = [0,4,6,9]; // 1 
 
var two = 8; //2 
 

 

 

 

 
function calculate(){ 
 
    
 
var NUMBERS = zero.concat(one,two); 
 
    
 
    var TOTAL = 0; // 6 
 
    
 
    for(var i = 0; i < NUMBERS.length; i++){ 
 
    if(NUMBERS[i] === one[i]){ 
 
     TOTAL += 1; 
 
    }else if(NUMBERS[i] == two){ 
 
     TOTAL +=2; 
 
    }else { 
 
     TOTAL += 0; 
 
    } 
 
    
 
    } 
 
    
 
    console.log(TOTAL); 
 
} 
 

 
calculate();

+2

Почему вы хотите всего 6 ?? В чем логика? –

+2

Пройдитесь через него в отладчике, встроенном в ваш браузер, и посмотрите на значения ваших переменных при прохождении кода. (Если вы не знаете, как это сделать, первое, что нужно сделать, это научиться делать это. :-)) Индексы в 'NUMBERS' отличаются от индексов в' one' и ' TOTAL + = 0' - нет-op (ничего не делает). –

+0

Наконец: как можно ближе к логике (число 1 для каждой записи в 'NUMBERS', которая появляется в' one' и 2 для каждой записи в 'NUMBERS', которая равна' two'), вы получите 7, а не 6. 'NUMBERS'' '[1,2,4,5,7,0,4,6,9,8]'. Таким образом, каждый из них для '4,0,4,6,9' равен 5 плюс 2 для' 8' равен 7. –

ответ

1

Это будет соответствовать только если значение в ЧИСЛАХ [I] находится в том же положении массива один.

if(NUMBERS[i] === one[i]){ 

Изменить его к этому:

if (one.indexOf(NUMBERS[i]) !== -1){ 

, чтобы проверить на наличие ЧИСЛА [I] в одном.

Кроме того, у вас есть четыре в нулевом и одном массиве.

Как @TJCrowder упомянутый - ответ 7.

можно опустить:

TOTAL += 0 

Добавление ноль ничего не изменится.

+0

Спасибо! Я попробую. – Recon

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