在Javascript中使用用户指定的参数作为键

时间:2013-08-29 11:03:03

标签: javascript json

我将数据作为JSON从API返回。在这里有一个结果数组,其结果对象/哈希值介于5到9个键之间 - id,url,title,type,等等。

如果我想删除不必要的东西并返回一个只包含title和url的结果数组,我可以这样做:

function getTitleAndUrl(yourDataObject){ 
var results = yourDataObject.results;
var len = results.length;
var out = [];

for(var i = 0; i < len; i++ ) {
    out.push({
        title: results[i].title,
        url: results[i].url
    });
}
  return out;
};

我只用标题和网址获得所有结果。

我怎么能这样做,以便传递给函数的一些参数变得等同于'title'和'url'? 这个想法是这样的:

function getSpecificData(yourData, arg1, arg2){
  var results = yourData.results;
  var len = results.length;
  var out = [];

    for( var i = 0; i < len; i++ ){
    out.push({
        arg1: results[i].arg1,
        arg2: results[i].arg2
    });
}
  return out;
}

arg1arg2可以是标题,网址与上一个示例或ID,说明等相同。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

将arg1和arg2作为字符串传递然后这应该有效:

function getSpecificData(yourData, arg1, arg2){
  var results = yourData.results;
  var len = results.length;
  var out = [];

  for( var i = 0; i < len; i++ ){
    var data = {};
    data[arg1] = results[i][arg1];
    data[arg2] = results[i][arg2];
    out.push(data);
  }
  return out;
}

工作示例 - http://jsfiddle.net/LasCB/1/

答案 1 :(得分:1)

for循环中:

var obj = {};

obj[ key1 ] = value1;
obj[ key2 ] = value2;

out.push( obj );

key1key2是您要使用的键。