【问题标题】:changing forEach into for loop将 forEach 更改为 for 循环
【发布时间】:2020-08-01 06:21:50
【问题描述】:

这里是 Javascript 初学者,尝试通过编码来学习,目前我正在尝试学习“forEach”和“for”,这里我有一个与“forEach”一起使用的代码,我正在尝试更改它像这样进入'for循环'(不知道我是否在这里做?)如果可能有人可以为此编写单独的'for循环'?对新程序员来说会很好。

for (var i = 0; i < arvvoja.length; i++) { 
  option.textContent += dataa[i][arvvoja] + " "; 
}); 

没有任何成功,这是我的代码:

let animals 
let animalCols = ['Animal', 'Animal 2'] 
let peopleCols = ['Person', 'Person 2'] 
 
function myFunction() { 
  paivitys(animals, animalCols) 
} 
 
function paivitys(dataa, arvvoja) { 
  console.log(dataa); 
  //---- 
  if (dataa.hasOwnProperty("animal")) { 
    document.getElementById("1name").innerHTML = dataa.animal; 
  } else { 
    document.getElementById("1name").innerHTML = dataa.person; 
  } 
  //----   
  if (dataa.hasOwnProperty("animal2")) { 
    document.getElementById("2name").innerHTML = dataa.animal2; 
  } else { 
    document.getElementById("2name").innerHTML = dataa.person2; 
     
  } 
 
  document.getElementById("1name1").innerHTML = arvvoja[0]; 
  document.getElementById("2name1").innerHTML = arvvoja[1]; 
 
  //-----  
  document.getElementById("id").innerHTML = dataa.id; 
} 
 
function paivitaselekt(dataa, arvvoja) { 
  for (var i = 0; i < dataa.length; i++) { 
    var valitse = document.getElementById("Select"); 
    var option = document.createElement("option"); 
    arvvoja.forEach((value) => { 
      option.textContent += dataa[i][value] + " "; 
    }); 
    valitse.appendChild(option); 
  } 
} 
 
animals = { 
  "animal": "tiger", 
  "animal2": "lion", 
  "id": "54321", 
  "dole": { 
    "Key": "fhd699f" 
  } 
} 
 
paivitys(animals, animalCols); 
let kokoarray; 
 
people = [{ 
    "person": "kaka", 
    "person2": "julle", 
    "id": "9874", 
  }, 
  { 
    "person": "Ronaldo", 
    "person2": "jussi", 
    "id": "65555", 
  } 
] 
kokoarray = people; 
paivitaselekt(kokoarray, ["person", "id"]); 
 
document.getElementById("Select").addEventListener("change", function(event) { 
  const otettutunnsite = event.target.value.split(" ")[1]; 
  const otettutieto = kokoarray.filter((dataa) => dataa.id === otettutunnsite)[0]; 
  paivitys(otettutieto, peopleCols); 
}); 
<!DOCTYPE html> 
<html lang="en"> 
  <head> 
    <meta charset="UTF-8" /> 
    <meta name="viewport" content="width=device-width" /> 
    <link 
      rel="stylesheet" 
      href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" 
    /> 
    <link 
      rel="stylesheet" 
      href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" 
      integrity="sha384UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" 
      crossorigin="anonymous" 
    /> 
    <style> 
 
    </style> 
  </head> 
  <body> 
  
<div class=""> 
  <table class="table "> 
    <thead> 
      <tr> 
        <th   id="1name1" class="table-success">Animal</th> 
        <th   id="2name1" class="table-success">Animal</th> 
        <th   class="table-success">id</th> 
      </tr> 
    </thead> 
    <tbody> 
      <th id="1name"></th> 
      <th id="2name"></th> 
      <th id="id"></th> 
    </tbody> 
  </table> 
 
  <select id="Select" ></select> 
  <button onclick="myFunction()">backtozero</button> 
</div> </body> 
</html> 

【问题讨论】:

  • 答案很好,但需要彼此分开的“f​​or循环”

标签: javascript html arrays for-loop html-table


【解决方案1】:

在内循环中使用不同的变量:

var i, j;
for (i = 0; i < dataa.length; i++) { 
    var valitse = document.getElementById("Select"); 
    var option = document.createElement("option"); 
    for (j = 0; j < arvvoja.length; j++) { 
       option.textContent += dataa[i][arvvoja[j]] + " "; 
    } 
    valitse.appendChild(option); 
} 

【讨论】:

  • 谢谢,这可以用其他更简单的方式来完成吗?现在有两个“for循环”,我可以使用一个“for循环”还是其他更简单的方法?
  • @waleedd32 这不是你原来的问题,请为同样的问题打开一个新问题
  • 这不是正确的问题,也许我会被否决?
  • @waleedd32 你可以在这个平台上专门向它询问代码改进和建议codereview.stackexchange.com。一定要接受这个答案:)
  • @AnuragSrivastava 感谢您的评论,抱歉打扰了,您说得对,只是需要将其单独用于循环,我认为编辑此问题会更容易
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多