Как добавить новый элемент в массив объектов? - PullRequest
0 голосов
/ 09 мая 2018

Я хочу добавить новый элемент в мой массив объектов. Каждый элемент массива list[x] для произвольного целого числа x является объектом вида:

{
    name: "insert-name",
    value: "insert-value"
}

Мне сказали, что для добавления элемента в массив я должен использовать функцию push(). Вот что я сделал:

exports.handle = function(input) {
for(var i=0; i<cc.list.length; i++) {
    if(input == cc.list[i].name) {
        return cc.list[i].value;
    }
}

if(input.startsWith("create-cc")) {
    var namevalue = input.slice(10, input.length);
    var spaceloc = namevalue.indexOf(" ");
    var nname = namevalue.slice(0, spaceloc);
    var nvalue = namevalue.slice(spaceloc+1, namevalue.length);

    cc.list.push({
        name: nname,
        value: nvalue
    });

    return "Command successfully created! Typing `Z!" + name +"` will output `" + value +"` now!" ;
}

return "Error.";

};

cc.list - имя массива в файле .js этого модуля. Я использую вводимые пользователем данные в качестве имени и значения для нового элемента массива, который я хочу добавить в список. Однако я получил ошибку на консоли, которая сказала мне:

ReferenceError: name is not defined

Это полностью имеет смысл, поскольку я не объявлял такой параметр. Но разве этот параметр уже не существует как часть объекта «шаблон», который формирует элемент массива? Почему этот метод не работает? И как мне сделать новый элемент объекта массива, который будет добавлен к этому массиву?

1 Ответ

0 голосов
/ 09 мая 2018

Проблема с этой строкой:

return "Command successfully created! Typing `Z!" + name +"` will output `" + value +"` now!" ;

Используется переменная с именем name, однако такой переменной не существует, следовательно, ошибка ReferenceError: name is not defined

Вы сделали ту же ошибку с value, переменная с этим именем не определена.

Однако у вас есть переменные с именами nname и nvalue, так что, возможно, это то, что вы намеревались написать:

return "Command successfully created! Typing `Z!" + nname +"` will output `" + nvalue +"` now!" ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...