【问题标题】:show nested array in javascript [duplicate]在javascript中显示嵌套数组[重复]
【发布时间】:2015-10-13 22:46:12
【问题描述】:

var people = [
  ["nan", "30", "female", ["4545345454", "4324324324"]],
  ["ban", "35", "male", ["4324234234", "7576343243"]],
  ["san", "38", "male", ["3242342343", "3423423434"]]
];
//var k=0;
// document.write(people[0][3][0]);
for (var row = 0; row < people.length; row++) {
  document.write("<h2> Person" + (row + 1) + "</h2>");
  for (var col = 0; col < people[row].length; col++) {
    document.write(people[row][col] + "<br>");


  }
}

如何在新行中显示大多数内部数组元素,例如联系人号码?

【问题讨论】:

  • people 数组是只包含数组元素还是混合类型?

标签: javascript


【解决方案1】:
var people =[
          ["nan","30","female", ["4545345454", "4324324324"]], 
          ["ban","35","male", ["4324234234", "7576343243"]],
          ["san", "38","male", ["3242342343", "3423423434"]]
     ];
//var k=0;
// document.write(people[0][3][0]);
for(var row=0;row<people.length;row++){
 document.write("<h2> Person" +(row+1)+"</h2>");
 for(var col=0; col<people[row].length-1; col++){
    document.write(people[row][col] +"<br>");


 }
 for(var pcol=0; pcol<people[row][3].length; pcol++){
    document.write(people[row][3][pcol] +"<br>");


 }

}

你需要循环电话数组

【讨论】:

  • 非常感谢您的回答。当然,我们需要看一下电话,我将该代码放在 col 循环中,但不起作用。你能解释一下吗?
  • 附部分代码有你的副本
【解决方案2】:

如果你觉得你的对象中还有其他可能是数组的元素,你可以动态地执行此操作:

function printArray(array) {
    for (var key in array) {
        if (typeof(array[key]) === "object") {
            printArray(array[key]);
        } else {
            document.write(array[key] + "<br>");
        }
    }
}

for (var i = 0; i < people.length; i++) {
    document.write("<h2> Person" +(i+1)+"</h2>");
    printArray(people[i]);
}

这会查看整个对象结构,找到 object 类型的元素,并递归查看这些对象。

【讨论】:

  • 这是上面链接中另一个答案的直接副本。不要直接复制答案而不提供源链接
  • 这实际上是我的手写解决方案...我不会复制答案。我想这只是巧合。
  • @charlietfl 我查看了链接,发现有惊人的相似之处。但是,如果您仔细观察,这些解决方案实际上是不同的,具有不同类型的循环和对递归函数的多次调用。只是想解决这个问题,因为我不喜欢被指责这样:(
【解决方案3】:

你可以使用递归,以防深度未知

var people = [
  ["nan", "30", "female", ["4545345454", "4324324324"]],
  ["ban", "35", "male", ["4324234234", "7576343243"]],
  ["san", "38", "male", ["3242342343", "3423423434"]]
];

var dump = function(o) {
  if (o instanceof Array) {
    for (var i = 0, l = o.length; l > i; i++)
      dump(o[i]);
    return;
  }
  document.write(o + "<br/>");
};

dump(people);

【讨论】:

    猜你喜欢
    • 2023-01-28
    • 2021-02-23
    • 2020-11-06
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多