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

时间:2014-11-10 10:08:48

标签: javascript

所以我有一个变量,因为这一点有一个静态定义,我希望它现在从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 is not a function 我做错了什么?环顾四周,但无法解决这个问题......是不是可能?

2 个答案:

答案 0 :(得分:3)

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

x().slice(1);

答案 1 :(得分:2)

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

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