繁体   English   中英

在Javascript中打印出一个多维数组

[英]Printing out a multidimensional array in Javascript

我试图从多维打印出一些信息。 在这种情况下,它是名字,姓氏和出生年份。

但是当第一个人被打印出来时,代码断了,我不知道为什么。 一些帮助会很棒。

 profiler = [ ["Jake", "name2", "name3"], ["Madsen", "last2", "last3"], ["1996-03-09", "year2", "year3"], ]; printProfil(profiler); function printProfil(profiler) { var forNavn = ""; efterNavn = ""; fodselsAr = ""; i = 0; for (i; i <= profiler.length; i++) { forNavn = profiler[i][i]; efterNavn = profiler[i + 1][i]; fodselsAr = profiler[i + 2][i]; console.log("Fornavn:", forNavn, "Efternavn:", efterNavn, "Fødsels År:", fodselsAr) } } 

在第一次迭代之后循环崩溃的原因是因为这一行:

fodselsAr = profiler[i + 2][i];

在第二个循环中, i等于1 - > i + 2 = 3,但是profiler只包含3个条目,因此它会崩溃。

您需要使用i索引访问profiler数组,然后访问0,1和2索引处的条目:

 profiler = [ ["Jake", "name2", "name3"], ["Madsen", "last2", "last3"], ["1996-03-09", "year2", "year3"], ]; printProfil(profiler); function printProfil(profiler) { var forNavn = ""; efterNavn = ""; fodselsAr = ""; i = 0; for (i; i < profiler.length; i++) { forNavn = profiler[0][i]; efterNavn = profiler[1][i]; fodselsAr = profiler[2][i]; console.log("Fornavn:", forNavn, "Efternavn:", efterNavn, "Fødsels År:", fodselsAr) } } 

你可以迭代探查器的第一个元素,你将获得所有名称,对应于你可以使用0,1,2获取相应的数组来获取姓氏和日期。 如果有更多的阵列,你可以使用第二个循环。

 profiler = [ ["Jake","name2","name3"], ["Madsen","last2","last3"], ["1996-03-09","year2","year3"], ]; printProfil(profiler); function printProfil(profiler) { var forNavn = ""; efterNavn = ""; fodselsAr = ""; i = 0; for(var i; i < profiler[0].length; i++) { forNavn = profiler[0][i]; efterNavn = profiler[1][i]; fodselsAr = profiler[2][i]; console.log("Fornavn:", forNavn, "Efternavn:", efterNavn, "Fødsels År:", fodselsAr) } } 

首先,你的for循环的结束条件不正确。 您希望在索引等于数组长度后停止迭代,因此您希望在索引小于长度时继续循环。

编辑:让我们,包括我自己,尝试了解您正在使用的数据结构,以便我们可以确定如何访问您需要的数据。 你有一个外部数组,包含一个名字的内部数组,一个内部数组的姓氏,以及一个内部数组。 这些数组中的每一个的第一个元素对应于单个对象。 所以我们想要并行迭代所有三个内部数组,在每次迭代时从每个数组中获取一个元素。

由于三个内部数组中的每一个都包含来自单个对象集的一个字段,因此每个数组应该具有相同的长度。 因此,当我们想要迭代任何一个数组时,我们可以使用它们的任何长度来完成它。 为简单起见,让我们使用第一个数组。 从外部数组中获取内部数组的好方法是使用解构赋值 在for循环中,我们一次迭代所有三个内部数组,而不是外部数组。

使用常量索引:

const firstNames = profiler[0];
const lastNames = profiler[1];
const years = profiler[2];

for(let i = 0; i < firstNames.length; i++) {
  const forNavn = firstNames[i];
  const efterNavn = lastNames[i];
  const fodselsAr = years[i];
  console.log("Fornavn:", forNavn, "Efternavn:", efterNavn, "Fødsels År:", fodselsAr);
}

使用数组解构:

const [firstNames, lastNames, years] = profiler;

for(let i = 0; i < firstNames.length; i++) {
  const forNavn = firstNames[i];
  const efterNavn = lastNames[i];
  const fodselsAr = years[i];
  console.log("Fornavn:", forNavn, "Efternavn:", efterNavn, "Fødsels År:", fodselsAr);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM