开发者问题收集

避免 .slice 不是一个函数(javascript)

2014-11-10
10960

所以我有一个变量,此时它有一个静态定义,我希望它现在从 if-else 语句中动态获取值,但出现上述错误:

var x = [{a:b},{c:d},{e:f}]

我想将其更改为从函数中获取值:

var x = function(){
    if(true){
      return [{a:b},{c:d},{e:f}]
    }else{
      return [{f:g},{h:i}]
    }
}

但我收到错误 x.slice 不是函数 我做错了什么?四处寻找但无法解决这个问题... 不可能吗?

2个回答

x 是一个函数,因此您尝试在函数上调用 .slice() 。您想调用 x() 并使用返回值,然后对其进行切片:

x().slice(1);
Joe
2014-11-10

x 是一个函数,因此它没有切片,您应该在

var x = (function(){
    if(true){
      return [{a:b},{c:d},{e:f}]
    }else{
      return [{f:g},{h:i}]
    }
})()
之前运行它
DARK_DUCK
2014-11-10