| 
 Как написать проверку значения select с массивом? Добрый день! Только начал изучение js/jquery (если честно, не всегда понимаю где что), а программировал в последний раз лет 15 назад на бейсике в школе. Есть значения в теге select: <select id="myselect"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> </select> Есть ассоциативный массив в js 
var arr = [
{key:1, val:123, val2:1},
{key:2, val:223, val2:2},
{key:3, val:323, val2:2},
{key:4, val:423, val2:1}
],
Получаю значение $( "#myselect option:selected" ).text(); Как получить значения val и val2 если если значение key совпадает со значением select и сохранить это в переменную? | 
| 
 angelzzz, в каком формате должен быть результат? | 
| 
 Логика такая: Если значение select равно значению key массива arr, то Xval равно значению val соответствующему этому key, а значение Xval2 равно значение val2 соответствующему этому key. То есть мне нужно получить val и val2 чтобы затем их использовать в вычилсениях | 
| 
 angelzzz, формат это то что в s в переменной s находится массив из двух элементов с нужными значениями 
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script>
   $(function(){
var arr = [
{key:1, val:123, val2:1},
{key:2, val:223, val2:2},
{key:3, val:323, val2:2},
{key:4, val:423, val2:1}
], obj = {}, s;
Object.keys(arr).forEach(function (a) {
  var el = arr[a];
  obj[el.key] = [el.val,el.val2];
});
$("#myselect").on("change", function() {
  s = obj[this.value];
  $("p").html(s.join(" - "))
}).change()
   })
  </script>
</head>
<body>
<p></p>
<select id="myselect" >
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
</body>
</html>
 | 
| 
 angelzzz, или такой формат результата - здесь переменные a и b 
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script>
   $(function(){
var arr = [
{key:1, val:123, val2:1},
{key:2, val:223, val2:2},
{key:3, val:323, val2:2},
{key:4, val:423, val2:1}
], obj = {}, a,b;
Object.keys(arr).forEach(function (a) {
  var el = arr[a];
  obj[el.key] = [el.val,el.val2];
});
$("#myselect").on("change", function() {
  var s = obj[this.value];
  a = s[0];
  b = s[1];
  $("p").html(a+ " - " + b)
}).change()
   })
  </script>
</head>
<body>
<p></p>
<select id="myselect" >
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
</body>
</html>
 | 
| 
 Значит формат 2 переменные. Спасибо! Попробую | 
| 
 Можете объяснить эту конструкцию: 
$(function(){
var arr = [
{key:1, val:123, val2:1},
{key:2, val:223, val2:2},
{key:3, val:323, val2:2},
{key:4, val:423, val2:1}
],
Этой просто объявляется массив, тут понятно 
obj = {}, a,b;
Это специально идет через обычную запятую? что делает эта част? просто присваивается в переменную obj массив и два значения? 
Object.keys(arr).forEach(function (a) {
  var el = arr[a];
  obj[el.key] = [el.val,el.val2];
});
Это видимо перебор? Тут идет сравнение со значением из select? 
$("#myselect").on("change", function() {
  var s = obj[this.value];
  a = s[0];
  b = s[1];
  $("p").html(a+ " - " + b)
}).change()
Вот эта часть у меня выдает ошибку, видимо потому что это и так находится все в функции изменения которой стоят на on.change. Вот так выдает ошибку 
var arr = [
{key:1, val:123, val2:1},
{key:2, val:223, val2:2},
{key:3, val:323, val2:2},
{key:4, val:423, val2:1}
], obj = {}, a,b;
Object.keys(arr).forEach(function (a) {
  var el = arr[a];
  obj[el.key] = [el.val,el.val2];
});
 
  var s = obj[this.value];
  a = s[0];
  b = s[1];
  $("p").html(a+ " - " + b)
 | 
| 
 Цитата: 
 var s = obj[1]; | 
| 
 Выдает ошибку  Uncaught TypeError: Cannot read property '0' of undefined на строке a = s[0]; | 
| 
 Цитата: 
 
var arr = [
{key:1, val:123, val2:1},
{key:2, val:223, val2:2},
{key:3, val:323, val2:2},
{key:4, val:423, val2:1}
], obj = {}, a,b;
Object.keys(arr).forEach(function (a) {
  var el = arr[a];
  obj[el.key] = [el.val,el.val2];
});
  var s = obj[1];
  a = s[0];
  b = s[1];
 alert(a+ " - " + b)
 | 
| Часовой пояс GMT +3, время: 05:08. |