我将数据作为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;
}
arg1
和arg2
可以是标题,网址与上一个示例或ID,说明等相同。
非常感谢任何帮助。
答案 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 );
key1
和key2
是您要使用的键。