2013-08-29 21 views
0

我有數據從API作爲JSON返回。在這裏有一個結果數組,結果對象/哈希值在5到9之間 - id,url,title,type,等等。在Javascript中使用用戶指定的參數作爲鍵

如果我想去掉不必要的東西,並返回只有標題和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; 
}; 

而且我得到的所有隻有標題和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可能是標題,URL像前面的例子或ID,描述等

任何幫助極大的讚賞。

+0

你應該看看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects。它會給你帶來很多好處。 – Vishwanath

回答

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/

+0

太棒了。如此接近,但無法讓我的頭靠近它。非常感謝! – Swooop

1

for循環:

var obj = {}; 

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

out.push(obj); 

key1key2是關鍵你想用。

+0

是的,這有效,上面的答案給了我需要的靈活性。謝謝大家 – Swooop

相關問題