使用javascript进行数据分类

时间:2015-01-05 08:13:22

标签: javascript classification

我有大量数据,需要使用javascript对其进行分类。

使用脚本:

  1. 网址将添加到每个车型中。

  2. 对于同一车型,应该是相同的网址

  3. 当重复显示网址时,此行的当前网址应向下移动以显示下一个车型

  4. 我们有解决第一和第二的脚本第二个问题。现在我们要解决第3项,请帮助

    这是一些数据:

        <p id="demo0"><span id="ayd0">toyota</span></p>
        <p id="demo1"><span id="ayd1">hyundai</span></p>
        <p id="demo2"><span id="ayd2">nissan</span></p>
        <p id="demo3"><span id="ayd3">honda</span></p>
        <p id="demo4"><span id="ayd4">toyota</span></p>
        <p id="demo5"><span id="ayd5">hyundai</span></p>
        <p id="demo6"><span id="ayd6">lexus</span></p>
        <p id="demo7"><span id="ayd7">porsche</span></p>
    

    它解决了第一次

    function urlRank (){
        var product, z, dme, aydi3, l=0, m=0;
        var urles = ["link1","link2","link3","link4","link5","link6","link7","link8"];
        for (z=0; z<8; z++){
                aydi3 = "urlaydi"+l;
                dme = "demo"+z;
                product = document.getElementById(dme).innerHTML;
               document.getElementById(dme).innerHTML = product+"&nbsp"+'<span class="'+aydi3+'"'+urles[m]+'</span>';
            l++; 
            m++;
        }
    }
    

    它解决了第二次

    function clasificat (){
        var product1, product2, aydi1, aydi2, totl, contrl, e=0, f, d=0;
        for (; d<8; d++){
                totl = "demo"+d;
                aydi1 = "ayd"+e;
                e++;
                product1 = document.getElementById(aydi1).innerHTML;
            for (f=0; f<8; f++){
                aydi2 = "ayd"+f;
                product2 = document.getElementById(aydi2).innerHTML;
                contrl = document.getElementById(aydi2).innerHTML;
                if (product1==product2 && contrl.match(/link/) != "link"){
                    document.getElementById(aydi2).innerHTML = document.getElementById(totl).innerHTML;
                }
            }
        }
    }
    

    我们无法解决第三个问题,但对我们来说非常重要,请给出建议,帮助我们。

2 个答案:

答案 0 :(得分:0)

据我所知,你有一个有id和链接的汽车模型列表,

并且您希望按车型订购此列表组,并且每个模型必须具有相同的链接。

如果这样可以;

  //you can get this data from backend via ajax
  var myCarModel = [
                     {id:0, name:'toyota'},
                     {id:1, name:'hundai'},
                     {id:2, name:'nissan'},
                     {id:3, name:'toyota'}
                     //...
                   ]
  var urles = ["link1","link2","link3","link4","link5","link6","link7","link8"];

  //now you need may models and urls
  //however, how you chose url for model?
  //for example

  var mapedLink = [];
  for(var i=0; i< myCarModel.length; i++){
      var exist = checkExist(myCarModel[i]) //check car model already listed
       var model = checkExist(model);
       if(exist)
          model.link = exist.link;
       else
          model.link = urles[i];
       if(exist)
          mapedLink.splice(exist.index + 1, 0, model); //insert new model after exist model
       else
          mapedLink.push(model); //inser end of the array
  }

  //now you can render your object to html
 var myHtml = '';
 for(var i=0; i< mappedLink.length; i++){
   var model = mappedLink[i];
    myHtml +='<p id="demo'+ model.id +'"><span id="ayd' + model.id +'" class="urlaydi' + model.id + ' ' + model.link + '">'+ model.name +'</span></p>'
 }
 var mycontainer =  document.getElementById("mycontainerid");
 mycontainer.innerHTML = myHtml;
  function checkExist(model){
     if(mappedLink.length){
         var exist = false;
         for(var i=0; i< mappedLink.length; i++){
              if(model.id == mappedLink[i].id){
                  exist = {index:i, url:model.link};
                  return exist;
               }
         }
        return false;
     }
     else
     return false;
  }

请注意;我对您的数据结构一无所知。试着给你一个意见。

请发布您的示例数据结构并显示您的预期输出。

答案 1 :(得分:0)

汽车模型的数据结构

  1. toyota auris

  2. hyundai elantra

  3. nissan bassara

  4. 本田玉

  5. toyota auris

  6. hyundai elantra

  7. lexus gs

  8. porcshe cayman

  9. -

    <磷>氮。任何车

    链接的数据结构

    1. link_toyota

    2. link_hyundai

    3. link_nissan

    4. link_honda

    5. link_lexus

    6. link_porcshe

    7. link_bentley

    8. link_cadillac

    9. -

      <磷>氮。 link_anycar