• 【JavaScript 进阶教程】汽车商城根据价格区间筛选车辆案例


    本案例源码链接(非VIP可私聊获取):https://download.csdn.net/download/weixin_52212950/86286910https://download.csdn.net/download/weixin_52212950/86286910

    文章导读:  

             这篇文章实现一个小案例:在购物平台选商品时我们经常会输价格区间,然后筛选出在这个区间内的商品,其实有JavaScript基础我们就已经能实现了,利用循环判断等知识。但是这篇文章是新方法 forEach,filter,some 的使用实现,可以让我们的实现更轻松。

    文章目录:

    一:效果展示

     二:功能实现分析

    2.1 页面渲染数据

    2.2 根据价格区间查找

    2.3 根据输入结果准确查找

     三:完整代码


    一:效果展示

    页面基本效果

     根据价格区间搜索

     根据车辆名称搜索


     二:功能实现分析

    2.1 页面渲染数据

    我们的数据存放格式为数组放对象,在写入大量数据后要将其渲染到页面的主表格中,我们可以使用 forEach 方法来实现,每次迭代都会执行一次基础的创建行,添加行的操作


    实现过程:

    • 遍历开始,首先轮到的是数组第一个元素,即第一个车辆的数据,然后创建行tr,给行tr添加内容,内容中直接将车辆信息的编号id,名称name,价格price写入,然后再在tbody内加上创建好的行
    • 再轮到下一个车辆的数据,在创建行等操作,直到所有车辆信息全部添加进去结束
    1. car.forEach(function(value,index,arr){
    2. var tr=document.createElement('tr');
    3. tr.innerHTML=''+value.id+''+value.name+''+value.price+''
    4. tbody.appendChild(tr)
    5. })

    2.2 根据价格区间查找

    既然是筛选数据,那自然是选择我们的 filter 方法了,为了不让表格数据每次搜索完后上一次的数据还保留,所以每次点击后先清空右侧表格内的数据再去执行筛选。filter 返回的是一个新数组,所以需要一个新定义的数组去接收。筛选过后再使用 forEach 将新数组渲染到右侧的搜错结果表格即可

    1. select1.addEventListener('click',function(){
    2. rtbody.innerHTML=''
    3. var newcar=car.filter(function(value,index,arr){
    4. return value.price>=start.value&&value.price<=end.value;
    5. })
    6. // console.log(newcar);
    7. newcar.forEach(function(value,index,arr){
    8. var tr=document.createElement('tr');
    9. tr.innerHTML=''+value.name+' :'+value.price+'万'+''
    10. rtbody.appendChild(tr)
    11. })
    12. })

    2.3 根据输入结果准确查找

    在大批数据中要准确查找某个信息时,使用 some 方法比较合适,因为 some 一旦查找到就会停止遍历,数据量大时可以节省效率,很明显我们这个功能也要让其返回一个符合条件的新数组,但是some返回的结果是一个布尔值,所以此处我们需要自定义数组,然后去用 push 方法将复合查找要求的数据添加到新数组里,并且一旦查找到就让其 返回 ture 终止循环遍历

    1. select2.addEventListener('click',function(){
    2. rtbody.innerHTML=''
    3. newarr=[]
    4. car.some(function(value,index,arr){
    5. if(value.name==name1.value){
    6. newarr.push(value)
    7. return true;
    8. }
    9. })
    10. newarr.forEach(function(value,index,arr){
    11. var tr=document.createElement('tr');
    12. tr.innerHTML=''+value.name+' :'+value.price+'万'+''
    13. rtbody.appendChild(tr)
    14. })
    15. })

     三:完整代码

    1. DOCTYPE html>
    2. Document
    3. 您要查询的价格区间为(万元):

    4. ~
  • 您要查询的车辆名称为:

  • 汽车编号汽车名称汽车售价(万元)
  • 查询结果
  • 相关阅读:
    【无标题】
    webpack的使用 一
    LVS做集群四层负载均衡的简单理解
    《C++ primer》练习3.20:输出vector相邻元素的和&输出vector头尾对象的和
    使用JMeter软件压测接口配置说明
    Linux多线程篇【5】——线程池
    直击“三夏”生产:丰收喜报频传 夏播紧锣密鼓
    SpringBoot 集成 RabbitMq 实现五种常用消息模型
    前端页面大小自适应的问题
    vue如何实现登录数据的持久化
  • 原文地址:https://blog.csdn.net/weixin_52212950/article/details/126139222