javascript更改函数参数变量名并返回其值

时间:2013-02-15 08:54:00

标签: javascript function variables parameters

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

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];
}
}

欢迎任何帮助..

3 个答案:

答案 0 :(得分:1)

您应该尝试回复[“links_”+ 3]

答案 1 :(得分: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];
}

答案 2 :(得分:1)

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

return response['links_' + i];