js对象操作——多条件筛选

JavaScript016

js对象操作——多条件筛选,第1张

之前在做多条件筛选时用到了对象,多条件筛选的思路,并总结了几个关于对象的操作

var array = new Object()

创建一个空对象用来存储你传的参数,就是每个点击事件都要传参且也要将参数存储起来

同时筛选里面也会涉及到清空参数以及删除某一个值,例子:

var array={"name": "xiaojiayu", "age": 24, "gender": "man","sex":""}

 1、删除对象里某一个值

delete array.name            

2、清空对象

for(var key in array){

    delete array[key]          

}

 3、清除对象里空的键值对

for(var key in array){

    if(array[key] === ""){

        delete array[key]          

    }

}

您好:说一下我们自己商城的实现方式,最初我们用的都是服务器控件。首先先把所有的筛选条件加载到页面上,在用户点击的时候因为都是服务器控件,所以每次都会回发,我们给每个控件都有一个唯一的ID标识,这样每次点击后,把查询条件拼接到sql中查询出数据后,把当前点击的筛选条件存到ViewState中,然后页面刷新后去读取这个ViewState的值。也就是你页面上有几类筛选条件就需要几个ViewState值来存储。

后来因为数据从后台回发到前台,百度抓取的时候是抓不到的,不利于商城的SEO优化。最后决定把所有的筛选条件都拼接到URL中进行传值。这也是大多数网站采用的方式。就是举个例子:查询学生信息,筛选条件类型有,身高,体重,年龄。那么筛选条件都有a标签,连接是这样<a href='http://www.student.com/studentlist.html?age=18'></a>这样。点身高的时候先把连接中加上身高的的条件然后刷新页面。这样在后台直接request获取值,然后查询数据库即可。为此我们也自己写了一个根据传入的筛选条件来返回不同url的实体类方法。很简单。京东淘宝筛选也是刷新页面的。

查询完后,也是根据url中的值来锁定哪个筛选条件来显示选中状态。

写下思路吧:

写个过滤的function

var allData = [] //数组

function filter(key){

var len = allData .length

var result = []

for(var i=0i<leni++){

if(allData[i].indexOf(key)!=-1){//key 拉列表框选择相应项

result.push(allData[i])

}

}

return result

}