.push() is not a function ._. [solved]

Discussion in 'Learning Javascript' started by Nilom, May 25, 2019.

Thread Status:
Not open for further replies.
  1. Nilom

    Nilom Veteran Veteran

    Messages:
    178
    Likes Received:
    39
    First Language:
    German
    Primarily Uses:
    RMMV
    Hello!

    I used .push() for a card drawing skill system before.

    But when I try to do something similar and store movement commands (numbers) inside an array then I get ".push()" is not a function.

    What did I do wrong? I just do not see it:

    Code:
    if ($gameMap.regionId($gameMap.event($turn_number).x-1,$gameMap.event($turn_number).y) == 8) {
        $look_dir[$turn_number] = 17;
        $backfinding[$turn_number].push(18);
        console.log("look_dir: left");
    }
    if ($gameMap.regionId($gameMap.event($turn_number).x+1,$gameMap.event($turn_number).y) == 10) {
        $look_dir[$turn_number] = 18;
        $backfinding[$turn_number].push(17);
        console.log("look_dir: right");
    }
    if ($gameMap.regionId($gameMap.event($turn_number).x,$gameMap.event($turn_number).y-1) == 1) {
        $look_dir[$turn_number] = 19;
        $backfinding[$turn_number].push(16);
        console.log("look_dir: up");
    }
    if ($gameMap.regionId($gameMap.event($turn_number).x,$gameMap.event($turn_number).y+1) == 17) {
        $look_dir[$turn_number] = 16;
        $backfinding[$turn_number].push(19);
        console.log("look_dir: down");
    }
    
    Note that it is intended that I mirror the direction numbers. Because "backfinding" is all the commands from "pathfinding" backwards.


    [​IMG]

    Thanks in advance! :)





    Edit:
    Nevermind, I found the issue. I was defining $backfinding wrong.
    What I did:
    Code:
    $backfinding = [0, 0, 0, 0, 0]
    What I should have done:
    Code:
    for (var i = 4; i > 0; i--) {
    $backfinding[i] = []
    }
    
     
    Last edited: May 25, 2019
    #1
  2. MushroomCake28

    MushroomCake28 KAMO Studio Veteran

    Messages:
    1,614
    Likes Received:
    2,861
    Location:
    Montreal, Canada
    First Language:
    English
    Primarily Uses:
    RMMV
    I don't know about the plugins you are using or the code you wrote, but if you console.log $backfinding[$turn_number] what does it show? .push() works on arrays, so if it's trying to use .push() on an integer or something it will display an error.
     
    #2
    caethyril likes this.
  3. slimmmeiske2

    slimmmeiske2 Little Red Riding Hood Moderator

    Messages:
    5,309
    Likes Received:
    3,957
    Location:
    Belgium
    First Language:
    Dutch
    Primarily Uses:
    RMXP

    This thread is being closed, due to being solved. If for some reason you would like this thread re-opened, please report this post and leave a message why. Thank you.

     
    #3
Thread Status:
Not open for further replies.

Share This Page