2015-01-11 2 views
0

Так что у меня этот код:Выходной случайный элемент из массива яваскрипта

$('.submit_button').click(function() { 
     var optionsArray = $(".inputID").map(function() { 
      return this.value; 
     }).get().join(","); 

     var randomOutput = optionsArray[Math.floor(Math.random()*optionsArray.length)]; 

     console.log(randomOutput); 

    }); 

То, что я пытаюсь сделать, при нажатии на кнопку (.submit_button) для того, чтобы принять введенные пользователем данные (они являются входами с классом .inputID), сохраните их в массиве (который я сделал и он работает), а затем console.log (по крайней мере пока пока я тестирую) один из входов случайным образом. То, что он в настоящее время делает, это просто console.logs один символ вместо целого элемента из массива. Что я делаю не так?

+0

Вы не хотите использовать '.join()', который дает строку вместо массива. – Bergi

ответ

3

Удалить join

var optionsArray = $(".inputID").map(function() { 
     return this.value; 
    }).get(); 

join() метод объединяет элементы массива в строку и возвращает строку.

+0

Стоит отметить, что единственный символ - это потому, что строка является массивом символов. –

+0

Ты звезда, спасибо! – bert

1

Вы делаете join. Таким образом, optionsArray - это одна строка, а не массив anyomore. Итак, optionsArray[<anything>] - это в основном персонаж.

Удалить деталь join(","), и она будет работать.

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