2017-04-08 28 views
0

我很好奇我將如何在函數內返回兩個數組。例如,讓我們說我們有一系列國家和待辦事項列表。在一個循環中返回兩個數組

var countries = [ 
"Japan", 
"USA" 
] 

var todo = [ 
"go to the park", 
"drink amazing whiskey" 
] 

我想答案出來的方法就是它的循環後,我們會看到

"Japan I will go to the park" 
"USA I will drink amazing whiskey" 

我此刻寫我的運作方式是:

function myTrip(countries, todo){ 
    var newArr = []; 

    for (var i = 0; i < countries.length; i++) { 
    newArr += countries[i] 
    } 
    for (var i = 0; i < todo.length; i++) { 
    newArr += todo[i] 
    } 
    return newArr 
} 

我老實說,不知道該從哪裏出發。我知道我需要把他們放在一個數組中,比如國家[i] +「我會」+ todo [i],但我不確定如何去做。我需要做回報,而不是newArr = +國家[我]?或者我完全錯誤在我的邏輯和我的代碼?在這方面的所有幫助將不勝感激。

回答

0

如果你需要的所有待辦事項的每個國家,那麼你可以使用嵌套循環,像這樣:

var countries = [ 
 
"Japan", 
 
"USA" 
 
], 
 
todo = [ 
 
"go to the park", 
 
"drink amazing whiskey" 
 
], 
 
combined = []; 
 

 
function myTrip(countries, todo){ 
 
    var newArr = []; 
 

 
    countries.forEach(function(country) { 
 
    todo.forEach(function(todo) { 
 
     newArr.push(country + " I will " + todo); 
 
    }) 
 
    }); 
 

 
    return newArr; 
 
} 
 

 
combined = myTrip(countries, todo); 
 

 
alert(combined);

+0

可能不是。我實際上正在回答類似於我寫的問題,他們給我們兩個數組。希望我們一起輸出。我正在考慮嵌套for循環,但這似乎並不傳統,這就是爲什麼我將它們分開。 –

+0

如果您想輸出每個國家的每個待辦事項項,您將使用嵌套循環。 –

+0

所以我想套上它們。以todo的輸出爲例,然後將它們放在任何來自國家的輸出中,然後使用country loop將句子傳遞給newArr? –

1

如果您todo陣列的每個鍵對應於countries陣列中的關鍵,所有你需要做的就是要循環countries陣列和使用您的todo陣列相同的密鑰。

var countries = [ 
 
    "Japan", 
 
    "USA", 
 
    "Sweden" 
 
] 
 

 
var todo = [ 
 
    "go to the park", 
 
    "drink amazing whiskey" 
 
] 
 

 
for (var i = 0; i < countries.length; ++i) { 
 
    // If key is not found in the `todo` array, skip entry in loop. 
 
    if (! todo[i]) continue; 
 
    
 
    console.log(countries[i] + ' ' + todo[i]); 
 
}

+0

有沒有相關性。有兩個數組我必須迭代並按照前面提到的將它們輸出到一起。最後它會以country [i] +「任何字符串」+ todo [i]結束。 –

+0

@StevenOssorio你試過這個代碼嗎?它產生你說你想要的輸出。如果這不是你的意思,你應該編輯你的問題來澄清。你說沒有關聯,但是你的問題表明輸入項目通過它們在各自輸入列表中的位置相關聯。 –

0

你可以這樣做。循環播放其中一個數組&添加來自兩個數組的內容。保持這些結果在一個單獨的數組,你可以檢索

var countries = [ 
"Japan", 
"USA" 
] 

var todo = [ 
"go to the park", 
"drink amazing whiskey" 
] 

var outputObj=[] 
countries.forEach(function(item,index){ 
    outputObj.push(countries[index] +' '+todo[index]); 

}) 
console.log(outputObj) 

DEMO