2016-09-22 6 views
-1
function btnDisplay_onclick() { 
    var age = ageTextboc.value; 
    var minWeight = [5, 15,25, 45, 60, 70, 75, 80]; 

    minWeightTextbox.value = minWeight[age-1]; 
} 

Я хочу знать, почему мне нужно использовать age-1 участие в minWeightTextbox.value = minWeight[age-1];, а не просто age.Пытаясь понять JS Массивы

Если кто-то может помочь объяснить, что именно это делает, это было бы удивительно.

+0

Но что конкретно означает -1? Это заставляет начинать с 1 вместо 0? Я новичок в этом, если это глупый вопрос. – Bowie

+0

Мы не знаем, что в ваших переменных, поэтому мы не можем помочь. – Blazemonger

+0

http://image.prntscr.com/image/1698a6f659304153874b6c4cebb09628.png Будет ли это помогать? – Bowie

ответ

2

Технически говоря, вы не должны делать age-1, вы можете просто сделать age ... Гоча является то, что вы должны ввести возраст, начиная с 0 вместо 1. (Предполагается, что ваш массив является точной для 0 означает менее, чем один месяц.)

причина, как объясняется в другом ответе и комментариях, заключается в том, что массивы начинаются с 0 в javascript (и чаще всего, за исключением некоторых странных мест).

В качестве альтернативы вы можете добавить значение filler для позиции 0 в массиве. Здесь я добавил 1. Теперь вам не нужно использовать age-1, вы можете просто использовать age.

var minWeight = [1, 5, 15, 25, 45, 60, 70, 75, 80]; 

Вот еще одна альтернатива, которая модифицирует массив таким же образом;

var minWeight = [, 5, 15, 25, 45, 60, 70, 75, 80]; 

Только на этот раз первое место, которое занимает индекс 0, не определено.

Here's some history to read up on.

Массив индексов кардинальное вместо порядкового. Первым (порядковым) местом является индекс 0 (кардинал). У объектов также могут быть номера, но они номинированы.

Here's a clear explanation. Порядковый для заказа (1-й), кардинал для подсчета (0, 1, 2 ...), номинальный для наименования (№ 3).

0

Это потому, что массивы индексируются 0, и этот код хочет визуально представлять возрасты в месяцах (1-9). Так что, если я выбираю возраст «1» вы храните данные по индексу 0.

Так minWeight [0] представляет собой вес для «возраста» 0.

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