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中找一下。