并排显示两个单独的数组值

时间:2013-05-28 20:48:41

标签: javascript

我一直在寻找我的问题的答案,但找不到解决方案。我想并排显示来自两个独立数组的值“ without joining the arrays together 。”

实施例

var names = ["Ben", "Joel", "Randy"];
var scores = [88, 99, 100];

我希望它们并排显示在文本框中,而不必加入或连接它们。他们需要为不同的操作保持独立。

实施例

Ben, 88
Joel, 99
Randy, 100

任何帮助都将非常感谢!感谢。

这是我尝试过的:

var list = "";
for (var n in names) {
    for (var s in scores) {
        list = names[n] + ", " + scores[s]; 

    }

}

4 个答案:

答案 0 :(得分:2)

这几乎是你正在寻找的基本for循环(假设两个数组总是大小相同):

for (var i = 0; i < names.length; i++) {
    var nameString = names[i] + "   " + scores[i];
    //do stuff with nameString
}

答案 1 :(得分:2)

var names = ["Ben", "Joel", "Randy"];
var scores = [88, 99, 100];

var text=names.map(function(itm,i){
   return [itm,scores[i]];
}).join('<br>');

//将文本返回到某个元素的innerHTML

//或用&#39; \ n&#39;分隔对于文本框或textarea值

答案 2 :(得分:1)

OP说(我引用)

  

这是我尝试过的:

var list = "";
for (var n in names) {
  for (var s in scores) {
    list = names[n] + ", " + scores[s]; 
  }
}

这里的问题是你正在嵌套循环。这将为您提供两组中的笛卡儿积(例如,如果您的names长度为10且“得分”长度为20,那么您将得到200行,每个名称/分数组合一个。

这样的方法是你最好的选择,因为它处理不同长度的列表:

var names = [ ... ] ;
var scores =  [ ... ] ;
var cnt = names.length < scores.length ? names.length : scores.length ;
var i = j = 0 ;

// process all matching elements
while ( i < cnt && j < cnt )
{
  process( name[i++] , score[i++] ) ;
}

// process names w/o scores
while ( i < cnt )
{
  process( names[i++] , null ) ;
}

// process scores w/o names
while ( j < cnt )
{
  process( null , scores[j++] ) ;
}

当然,你可以在一个循环中更简洁地做到这一点,但这种方法使你的意图对读者清楚。

答案 3 :(得分:0)

var i;

for(i = 0; i < names.length; i++)
{
   document.write(names[i] + " " + scores[i] + "<br>"); 
}

或者那不是你想要的?我不确定我是否“加入”了他们。