简体   繁体   中英

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.

您没有正确设置循环:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM