Я кодирую сервер RAGEMP и получаю следующую ошибку:

animais.indexOf is not a function

Вот упрощенная версия моего кода:

    var animaisNomes = ["falcao", "golfinho", "gato", "vaca", "javali", "macaco", "coiote", "veado", "orca", "rato", "cao", "puma"];
    var animaisIDs = ["a_c_chickenhawk", "a_c_dolphin", "a_c_cat_01", "a_c_cow", "a_c_boar", "a_c_chimp", "a_c_coyote", "a_c_deer", "a_c_killerwhale", "a_c_rat", "a_c_retriever", "a_c_mtlion"];

        mp.events.addCommand('animal', (player, fullText, animal) => {
                index = animais.indexOf(animal)
                player.outputChatBox(String(index))
        });

После того, как я набрал команду / animal [some animal], он должен вернуть мне индекс, где это животное находится в списке, но вместо этого он вернет мне ошибку. Почему?

Вот полный код

    var animaisNomes = ["falcao", "golfinho", "gato", "vaca", "javali", "macaco", "coiote", "veado", "orca", "rato", "cao", "puma"];
    var animaisIDs = ["a_c_chickenhawk", "a_c_dolphin", "a_c_cat_01", "a_c_cow", "a_c_boar", "a_c_chimp", "a_c_coyote", "a_c_deer", "a_c_killerwhale", "a_c_rat", "a_c_retriever", "a_c_mtlion"];

mp.events.addCommand('animal', (player, fullText, animal) => {
        if (animaisNomes.includes(animal)) {
            player.outputChatBox("Inclui")
            index = animais.indexOf(animal)
            player.outputChatBox(String(index))
        }
        else {
            player.outputChatBox("Esse animal não está disponível.")
        }
});
-1
user11786059 29 Авг 2020 в 20:44

2 ответа

Лучший ответ

В 7-й строке полной версии кода вы пишете {{0}} вместо animaisNomes.

Сделайте index = animaisNomes.indexOf(animal), и он должен работать.

1
smunteanu 29 Авг 2020 в 17:51

Var animals - это объект, фигурные скобки обозначают объект {} в javascript. indexOf будет работать для массивов, а не для объектов .. массивы обозначаются []. Поэтому, когда вы используете эту функцию для объекта, она не будет работать. Я предлагаю вам преобразовать его в массив таких объектов ..

 var animais = [
        {'falcao': "a_c_chickenhawk"},
        {'golfinho': "a_c_dolphin"},
      ]

Таким образом вы сможете использовать indexOf, но вам нужно будет внести изменения, чтобы учесть эти пары ключ-значение.

0
Dharman 29 Авг 2020 в 18:00