未定义的方法`+'代表nil:NilClass(NoMethodError)*试图构建一个数组*

时间:2015-06-24 06:58:47

标签: ruby operators

我在第11行得到了“未定义的方法'+'”错误。不确定原因。

$scope.deletemissionpoints = function(missionpointid, missionid){
    alert(missionpointid +" "+ missionid);
    jsonData.deletePointId.push(missionpointid);

   $("#mission-"+missionid+"").find("li #"+missionpointid+"").remove();
   $("#mission-"+missionid+"").find("#"+missionpointid+"").find("img").remove(); 
};

3 个答案:

答案 0 :(得分:2)

在你的assign fibo = [1]中,这意味着fibo [0] = 1但是fibo [1]的值是多少?

fibo[1]  will be nill

r=fibo[i] # r = 1
t=fibo[i-1] # t = nil

s=r+t # will show undefined method for nill

要解决您的问题,请指定

 fibo[1] = 1

答案 1 :(得分:0)

在你的情况下,fibo在数组中只有一个元素。你试图从索引1(i)获取元素。这导致错误

答案 2 :(得分:0)

通过颠倒我编写赋值运算符的方式来修复错误。而不是

r=fibo[i]
t=fibo[i-1]
s=r+t

我做了

fibo[i]=r
fibo[i-1]=t
s=r+t

这是因为从右到左读取代码,因此将fibo [i]部分(为零)分配给变量。然后无法对变量进行操作。

一旦初始化的变量首先被分配给数组索引,数组索引不是nil,并且变量本身可以被操作。