使用Javascript数组创建HTML表

使用Javascript数组创建HTML表,javascript,Javascript,解析给定的数组(使用JavaScript)并创建一个HTML表 Gmail-包含域名为Gmail.com的所有电子邮件ID Yahoo-包含Yahoo.com域的所有电子邮件ID 其他-包含所有域不在a、b和c中的电子邮件ID,即不在gmail、hotmail和yahoo中 我想根据域分离EmailID数组,并在html表中显示它们。我已经尝试了下面的代码,但它在if条件下不起作用。请帮助我解决此问题或替代解决方案 ---------- <script>

解析给定的数组(使用JavaScript)并创建一个HTML表

  • Gmail-包含域名为Gmail.com的所有电子邮件ID
  • Yahoo-包含Yahoo.com域的所有电子邮件ID
  • 其他-包含所有域不在a、b和c中的电子邮件ID,即不在gmail、hotmail和yahoo中
我想根据域分离EmailID数组,并在html表中显示它们。我已经尝试了下面的代码,但它在if条件下不起作用。请帮助我解决此问题或替代解决方案

----------    
    <script>
        // var email ="test@gmail.com"
        //  var domain = email.replace(/.*@/," ");
        //  alert(domain);

        var d1 = "gmail.com"
        var d2 = "hotmail.com"
        var d3 = "yahoo.com"
        var email =[" test@gmail.com", "test@hotmail.com" , "test@yahoo.com"];
        var i;
        // var domain = email.replace(/.*@/," ");
        var text = "";
        for(i=0;i<email.length;i++){
            var dom = email[i].replace(/.*@/," ");
            if(dom[i]==d1){
              // text += email[i] + "<br>";

              // document.getElementById("demo").innerHTML = text;
              document.write("hii hello");
            }
            // else if(dom == "hotmail.com"){
      //         // text += email[i] + "<br>";

      //         // document.getElementById("demo").innerHTML = text;
      //         document.write("hii");
            // }
            // else if(dom == "yahoo.com"){
      //         // text += email[i] + "<br>";

      //         // document.getElementById("demo").innerHTML = text;
      //         document.write("swax");
            // }
            else{
                document.write(dom);        }
        }
        // document.getElementById("demo").innerHTML = text;
        </script>
------------
//var电子邮件=”test@gmail.com"
//var domain=email.replace(/.@/,“”);
//警报(域);
var d1=“gmail.com”
var d2=“hotmail.com”
var d3=“yahoo.com”
var email=[”test@gmail.com", "test@hotmail.com" , "test@yahoo.com"];
var i;
//var domain=email.replace(/.@/,“”);
var text=“”;
对于(i=0;i。替换(/.@/,”)

应该替换为空字符串

.replace(/.*@/,"");
顺便说一句,实际上不建议使用document.write()。 为了帮助您,我快速编写了这段代码作为您的起点(没有判断,我几乎没有测试):

问候,,
Vincent

我想要一个这种格式的解决方案。test0@gmail.com test11@hotmail.com test1@gmail.com test12@hotmail.com test2@gmail.com test13@hotmail.comfor(行的行)相当于for(设i=0;i function createTable(rows) { const table = document.createElement('table'); for (row of rows) { const tr = document.createElement('tr'); for (column of row) { const td = document.createElement('td'); td.appendChild(document.createTextNode(column)); tr.appendChild(td); } table.appendChild(tr); } document.body.appendChild(table); } const emails = [ 'test0@gmail.com', 'test0@hotmail.com', 'test0@test.com', 'test1@gmail.com', 'test1@hotmail.com', 'test1@test.com', ]; const split = [[], [], []]; emails.forEach(email => { switch (email.split('@')[1]) { case 'gmail.com': split[0].push(email); break; case 'hotmail.com': split[1].push(email); break; default: split[2].push(email) } }); createTable(split);