Skip to content
Advertisement

I’m getting an object even though I’m returning an array from my javascript function

I have a function in a javascript file where I return an array. But when I call this function, when I look at the type with the “typeof” command, it returns an object instead of an array.

My javascript file is here.

import {useStore} from "vuex";
import {computed} from "vue";

export const getActions = (menuId) => {
   const store = useStore()
    const loginInfo = computed(() => {
        return store.state.Identity.loginInfo
    });
    const actions = []
    loginInfo.value.Authorization.forEach((x)=>{
        let splitData = x.Id.split('-')
        if(splitData[0] === '02' && splitData[1] === menuId){
            if(!actions.some(item => item.Id === splitData[2]))
                actions.push({
                    Id:splitData[2],
                    Definition: x.Definition,
                    Clicked:false
                })
        }
    })
    return actions;
}

Here is where I call and use this function.

 let actions =[]
    actions =  getActions(props.menuId)
      for(let i=0; actions.length;i++){
        if(props.actionId === actions[i].Id)
          return isAuth.value = false
        else
          isAuth.value = true
      }

Although my variable named actions is an array, it sees it as an object and my computer starts freezing. My computer’s fan starts running very fast and chrome starts to freeze.

Advertisement

Answer

You didn’t set your loop right:

for(let i = 0; i < actions.length; i++){
Advertisement