Изменение переменной, переданной в качестве параметра в Javascript - PullRequest
1 голос
/ 16 марта 2020

Я недавно работал над проектом создания формы. У меня есть кнопка настройки, чтобы появилось больше полей, и люди нуждаются в них, но в настоящее время я использую 3 отдельные функции и знаю, что должен быть способ сократить мой код.

Я надеюсь передать переменную, которую я хочу работать с параметром. Например, я хотел бы использовать что-то вроде

var first = 1
var middle = 1
var last = 1

function increment("first, middle or last") {
"parameter"++
} 
console.log(parameter) //outputs "2"

Вот три функции, которые я сейчас использую, которые я хотел бы сжать до 1.

var first = 1;
var middle = 1;
var last = 1


function firstNameFields() {
    first = first + 1;
    var x = document.getElementById("firstField" + first);
    if (first >= 0) {
        x.style.display = "table-row";
    } else {
        x.style.display = "none";
    }
    if (first >= 10) {
        document.getElementById("first").style.display = "none";
    }
}

function middleNameFields() {
    middle = middle + 1;
    var x = document.getElementById("middleField" + middle);
    if (middle >= 0) {
        x.style.display = "table-row";
    } else {
        x.style.display = "none";
    }
    if (middle >= 10) {
        document.getElementById("middle").style.display = "none";
    }
}

function lastNameFields() {
    last = last + 1;
    var x = document.getElementById("lastField" + last);
    if (last >= 0) {
        x.style.display = "table-row";
    } else {
        x.style.display = "none";
    }
    1;
    if (last >= 10) {
        document.getElementById("last").style.display = "none";
    }
}

Большое вам спасибо!

1 Ответ

2 голосов
/ 16 марта 2020

Нельзя изменять обычные переменные с помощью функции, как вы описываете, но есть альтернативы. Вы можете использовать объект со свойствами вместо набора переменных, а затем передать имя свойства (т.е. строку) функции:

var name = {
  first: 1, middle: 1, last: 1
};

function increment(part) {
  name[part]++;
}

Теперь increment("first") будет увеличиваться name.first .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...