【发布时间】:2018-01-25 14:11:49
【问题描述】:
我有一个像这样的对象:
nameArray = dataArray.map(function (item) {
return {
value: item.Title,
title: item.Title,
id: item.Id,
location: item.Location,
telephone: item.Telephone,
address: item.Address,
postcode: item.Postcode,
category: item.Category
};
});
然后我做一些过滤来过滤掉封闭的位置并返回一个最终的数组进行处理:
var CClose = "C Closed";
var Cclosed = "closed";
var CClosed = "C closed";
//for each item if its closed remove it
//push it to standard list
standardAZList = $.map(nameArray, function (val, key) {
if (val.category != CClosed || val.category != Cclosed ||
val.category != CClose)
return val;
});
for (var i = 0; i < standardAZList.length; i++) {
//filteredAZList.push(standardAZList[i]);
alert("After removing name count is inside remove:" +
standardAZList.length);
}
但是我得到了错误的 160 个项目,但过滤器应该只显示 110 个(有些是 null 在类别中无关紧要)。
【问题讨论】:
-
你的过滤功能在哪里?
-
if(val.category != CClosed || val.category != Cclosed || val.category != CClose)imo 这似乎总是正确的 -
谢谢大家,现在只是尝试 .filter 操作.... ;-)
-
通过过滤对其进行排序:
let filteredAZLista = nameArray.filter(c => c.category !== "C closed" && c.category !== "closed" && c.category !== "C Closed"); // filteredAZList = nameArray.filter(location => location.category !== Cclosed || CClose || CClosed) alert("" + filteredAZLista.length); for(var i=0;i<filteredAZLista.length;i++){ standardAZList.push(filteredAZLista[i]); alert("After removing name count is inside remove:" + standardAZList.length); }
标签: javascript arrays for-loop