2016-02-09 2 views
-3

Я новичок в Java Script. У меня есть некоторый массив, как это,Доступ к значению массива в Javascript

var red = [10, 20, 30]; 
    var blue = [11, 21, 31]; 
    var green = [12, 22, 32]; 
    var userSelect = $("#Color").val(); 

Здесь userSelect должен быть «красный», «синий» или «зеленый». Я пытаюсь получить массив из строки ввода пользователя. Например, если они вводят строку «зеленый», я тогда покажу им массив зеленый. Я пробовал до сих пор,

 all = [red, blue, green]; 
    desiredArray = all[userSelect]; 

Но это не работает. Может ли кто-нибудь указать мне в правильном направлении? Заранее спасибо.

+0

Любой заботится, чтобы объяснить причину вниз голосования, пожалуйста? Это поможет мне задать лучший вопрос в следующий раз. –

ответ

1

магазин значение в объекте вместо array, так что вы можете передать значение с помощью key объекта с помощью bracket notation([]). Эта нотация также очень полезна, когда имена свойств должны быть динамически определены (когда имя свойства не определено до времени исполнения).

Попробуйте это:

var red = [10, 20, 30]; 
 
var blue = [11, 21, 31]; 
 
var green = [12, 22, 32]; 
 
var userSelect = $("#Color").val(); 
 
var all = { 
 
    red: red, 
 
    blue: blue, 
 
    green: green 
 
}; 
 
$('#Color').on('change', function() { 
 
    alert(all[this.value]); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<select id='Color'> 
 
    <option value='red'>Red</option> 
 
    <option value='green'>Green</option> 
 
    <option value='blue'>Blue</option> 
 
</select>

+1

Спасибо, Райан, сейчас работает. –

+0

Рад, что это помогло! _Happy coding_ – Rayon

2

Это не будет работать, как массивы не имеют контекст о имени переменной. Все будет выглядеть как [[1,2,3],[4,5,6],[7,8,9]]. он не понимает красный, зеленый или синий.

Что вы можете сделать, это назначить их в объекте.

var all={ 
"red": red, 
"green":green, 
"blue": blue 
} 

desiredArray = all[userSelect]; 
1

Это также сработает: просто возьмите строку пользователя и проверьте ее на соответствие. Недостатком является то, что пользователь может опечатать или выбрать вариант, которого нет.

var red = [10, 20, 30]; 
 
var blue = [11, 21, 31]; 
 
var green = [12, 22, 32]; 
 
var userSelect = prompt("Choose red, green, or blue"); 
 
switch(userSelect) { 
 
    case 'green': 
 
    alert('you chose green: ' + green); 
 
    break; 
 
    case 'red': 
 
    alert('you chose red: ' + red); 
 
    break; 
 
    case 'blue': 
 
    alert('you chose blue: ' + blue); 
 
    break; 
 
    default: 
 
    alert('check your spelling...'); 
 
}

+0

Спасибо за ваше предложение. Фактически, место, откуда я получаю вход пользователя, это html «select». Значения предопределены. –

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