Я хочу добавить новый элемент в мой массив объектов. Каждый элемент массива 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
Это полностью имеет смысл, поскольку я не объявлял такой параметр. Но разве этот параметр уже не существует как часть объекта «шаблон», который формирует элемент массива? Почему этот метод не работает? И как мне сделать новый элемент объекта массива, который будет добавлен к этому массиву?