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

JavaScript087

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]          

    }

}

<script>

var

products=[{id:"1001",name:"a"},{id:"1002",name:"hava1001"}]

for(var

i

in

products){

var

p=products[i].id

//alert(p.charAt("1001")!=-1)charAt是判断id字段是否包含‘1001’,查询不到返回-1

if(p.charAt("1001")!=-1){

alert("产品编号:"+products[i].id+"产品名称:"+products[i].name)

break

}

}

</script>

products[索引]获得json数组对象,然后

对象.属性

获得属性值。

类比

一下

你就明白怎样筛选,希望我的回答能帮到您,也希望您对我的回答做出评价

兼_听则明

http://hi.baidu.com/你我同步/home

function myFilter(arr1,arr2) {

    return  arr1.filter((ele) => 

        arr2.filter((x) => x.id === ele.id).length > 0

    )

}

在 chrome 浏览器下测试可行。

答案里为了简洁,使用了箭头函数。主要思路就是利用 Array 的 filter 函数。

该函数接受一个回掉函数作为参数,就是如何过滤想要的内容,满足条件的返回为true。

它并不要求b里的id都在a里,只要是共有的id都会选中。

如果是b里的id 都在a里的话,可以尝试这个方法。

function myFilter2(arr1,arr2) {

    var ret = []

    arr2.forEach(

        ele => {

            var findEle = arr1.find(x => x.id === ele.id )

            // 如果在arr1中找到,添加到arr1中

            findEle ? ret.push(findEle) : ''

        }

    )

    return ret

}

这个思路是把b中的每一个id都在a中找一下。