在循环中返回两个数组

时间:2017-04-08 16:48:24

标签: javascript arrays for-loop

我很好奇我是如何能够在函数中返回两个数组的。例如,假设我们有一系列国家和todo列表。

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] +&#34;我会&#34; + todo [i]但我不确定如何做到这一点。我需要返回而不是newArr = + countries [i]吗?或者我的逻辑和代码完全错了?所有的帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

如果todo数组中的每个键都与countries数组中的键相对应,那么您所要做的就是循环countries数组,并在todo数组上使用相同的键{1}}数组。

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

答案 1 :(得分: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);

答案 2 :(得分:0)

你可以这样做。循环遍历其中一个阵列&amp;添加两个数组中的内容。将这些结果保存在一个可以检索的单独数组中

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