【发布时间】:2018-07-29 07:40:00
【问题描述】:
我在 $.grep 和比较数组方面有点挣扎。 这是一个具体的问题,所以我会尽量保持简单。
我有一个包含商店列表的数组,其中包含额外的列表。 例如厕所、wifi 和咖啡。 [厕所:“1”,wifi:“0”,咖啡:“0”]
我有输入字段(复选框)。
var extras = [];
$(".input-extra").on("change", function(e){
if(this.checked){
extras.push(this.name);
}else{
extras.remove(this.name);
}
});
如果我选中输入复选框字段,我的数组将填充输入字段的名称(例如“toilet”)
现在我想显示与我的输入字段一致的商店。 (对不起,我不知道如何更好地描述它,所以我发布了一些例子)
e.G shop1 提供咖啡和无线网络。我正在寻找有wifi的商店。 所以会显示shop 1。
shop2 提供咖啡和卫生间。我正在寻找有wifi的商店。 商店 2 不会显示。 这很好用:但我怎样才能嵌入额外内容?
function fillShopListFilter(data, zip, extras, pricemin, pricemax, squaremetermin, squaremetermax) {
var length = $.grep(shortShopList.shops, function( n, i ) {
return zip.includes(parseInt(n.zip)) && parseInt(n.price)>=pricemin && parseInt(n.price)<=pricemax && parseInt(n.squaremeter)>=squaremetermin && parseInt(n.squaremeter)<=squaremetermax;
});
.....
}
我认为这很清楚。
感谢您的每一个回答。
【问题讨论】:
-
您能否也发布您当前的更新商店列表的代码以及商店列表的 html 占位符。
-
我通过 Ajax 作为 JSON 对象获取所有商店。 (REST API)。
标签: javascript jquery arrays filter