2016-12-06 3 views
3

У меня есть т. переменных, с которыми можно работать здесь, с информацией, идущей вперед и назад между формой в HTML. Переменные должны быть глобальными, чтобы они могли работать с множеством функций. Так вот один пример из списка:Можно ли использовать подстановочный знак для вызова переменных в Javascript?

var charDex = 0; 
var charEnd = 0; 
var charPer = 0; 
var charStr = 0; 
var charCon = 0; 
var charInt = 0; 
var charRat = 0; 
var charRes = 0; 
var charDip = 0; 
var charGui = 0; 
var charItd = 0; 
var charLea = 0; 

Они начинают с нуля, данные, введенные в форму, кнопка отправляет данные в функцию JS, которая хранит данные, а затем передает различную информацию, основанную на указанной сохраненные данные возвращаются к форме.

Теперь я знаю, что могу сохранить некоторое повторение, используя функции внутри функций, которые я сделал до сих пор. Но все же здесь многое происходит. Я хочу знать, есть ли способ использовать подстановочные знаки и/или сопоставление строк для автоматического сопоставления данных из ввода формы в переменные JS? Конечный результат будет то эффект:

function updateCharacter(form){ 
    char* = form.c*.value; 
    racial* = form.r*.value; 
    mod* = form.m*.value; 
    total* = char* + racial* + mod*; 
    form.t*.value = total*; 
} 

В моем случае, Chardex и form.cDex.value (и так далее) имеют тот же суффикс, поэтому я полагаю, что есть что-то я могу сделать, я я просто не уверен, что мне не хватает. Я думал об использовании цикла for с массивом, но я не совсем уверен, как я мог бы это сделать.

+0

Не ясно, что вы пытаетесь достичь. Что такое ожидаемый результат '*' в 'updateCharacter'? – guest271314

+0

В JavaScript нет дикого карточного оператора для варсов. '*' будет умножением. – PHPglue

ответ

2

Не беспокойтесь!

Просто используйте объект вместо этого.

Редактировать: удаление ранее используемого имени переменной 'char', так как это reserved word.

var chars = { 
    Dex: "some text", 
    End: 0, 
    Per: 2, 
    Str: 345, 
    Con: "blah blah", 
    Int: 0, 
    Rat: 0, 
    Res: 0, 
    Dip: 0, 
    Gui: 0, 
    Itd: 0, 
    Lea: 0 
} 

Вы можете получить доступ к значениям каждого из них, используя один из следующих вариантов:

  • chars['Dex']
  • chars.Dex

либо из них даст вам "текст" ,


Чтобы перебрать свойства, попробуйте следующее:

for (prop in chars) { 
    console.log(prop); // this will log the name of the property 
    console.log(chars[prop]); // this will log the value 
} 
+0

Это уже выглядит очень полезно. Я сделаю еще несколько копаний на объектах и ​​посмотрю, какие инструменты мне дадут. – Salakavala

+0

@ Салакавала - О, черт возьми, я должен был поймать себя на этом и предупредил вас об этом ... Не используйте имя переменной «char», поскольку это зарезервированное ключевое слово в JavaScript! [См. Полный список здесь!] (Http://www.javascripter.net/faq/reserved.htm) Я обновлю свой ответ. – Andrew

+0

@ Салакавала - Также нет проблем! Вы можете пометить мой ответ как принятый, если он ответил на ваш вопрос :) – Andrew

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