-1

嗨,我有一个函数,我想返回带有附加值的函数参数。所以不要写这个:

function(response) {
    return response.links_1;
}

function(response) {
    return response.links_2;
}

function(response) {
    return response.links_3;
}

我想制作一个循环并添加数字的for循环,如下所示:

function(response) {
    var counter = 3;
    for(var i = 0; i < counter; i++) {
        return response.links_ +i;
    }
}

重要的是 response.link_ 不能是字符串!然后它会丢失函数参数值。

我尝试这样做:

function(response) {
    var i = 1,  
    resp = 'response.links_',
    endResp = resp + i;
    return endResp ;
    }
}

和 console.log(endResp); 返回正确的字符串,但仅此而已,它是一个字符串.. 我想要变量response.links_1 的值而不是字符串值 response.links_1。

我刚刚尝试了以下方法,但没有任何运气:(解析:只是一种主干方法)

parse: function(response) {
    var counter = 3;
 for(var i = 0; i < counter; i++) {
   return response[links_ + i];
}
}

欢迎任何帮助..

4

3 回答 3

1

你应该试试 response["links_" + 3]

于 2013-02-15T09:07:24.513 回答
1

要访问JSON哈希的键,有两种方法

// For the following object
var obj = {
  links_1: 'value1',
  links_2: 'value1',
  links_3: 'value1',
};

// key1 can be accessed like
console.log(obj.links_1);

// Or
console.log(obj['links_1']);

所以,在你的情况下,你可以使用第二种方法

var counter = 3;
for(var i = 0; i < counter; i++) {
  return response['links_' + i];
}

此外,您可以通过

var counter = Object.keys(response).length;

而且,如果您不需要对counter变量执行任何其他操作,并且response对象仅包含链接,则可以使用类似

for (link in response) {
    return response[link];
}
于 2013-02-15T09:19:03.723 回答
1

对象取消引用运算符.不适用于动态生成的属性名称,因此您必须改用数组取消引用运算符[]

return response['links_' + i];
于 2013-02-15T09:22:41.430 回答