2017-04-08 1 views
0

함수 내에서 두 개의 배열을 반환 할 수 있는지 궁금합니다. 예를 들어 우리가 여러 국가와 할 일 목록을 가지고 있다고 가정 해 봅시다.루프에서 두 개의 배열 반환

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 :

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" 

를 볼 수 있습니다 정직하게 여기에서 어디로 가야할지 모르겠다. 나는 그들을 국가 [i] + "I will"+ todo [i]와 같은 배열에 넣어야 할 필요가 있음을 알고 있지만, 어떻게해야할지 불확실하다. newArr = + countries [i] 대신에 return을해야합니까? 또는 나는 내 논리와 코드에서 완전히 틀린가? 이 모든 도움을 주시면 감사하겠습니다. 당신의 todo 배열의 모든 키가 countries 배열의 키에 해당하는 경우

답변

0

당신은 다음과 같이 중첩 루프를 사용하는 것이 각 국가에 대한 모든 할 일 항목을해야하는 경우

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

:

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-loops 중첩을 생각하고 있었지만, 그것들은 종래의 것으로 보이지 않았다. –

+0

각 국가의 각 할 일 항목을 출력하려면 중첩 루프를 사용하십시오. –

+0

그래서 나는 그것들을 중첩한다고 가정합니다. 예를 들어 todo의 출력물을 가져 와서 다음 국가에서 오는 출력에 함께 놓고 country 루프를 사용하여 문장에서 newArr을 전달하십시오. –

1

은, 당신이 할 일은 루프 당신의 countries 배열을하고 todo 배열에 동일한 키를 사용하는 것입니다.

+0

검색 할 수있는 별도의 배열의 결과를 유지합니다. 앞서 설명한대로 두 개의 배열을 반복하여 함께 출력해야합니다. 결국 그것은 country [i] + "what strings"+ 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