JavaScript - 如何基于字符串过滤数组

时间:2018-01-25 14:11:49

标签: javascript arrays for-loop

我有一个像这样的对象:

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);
}

然而,我收到的错误数量为1​​60,但过滤器应该只显示110(有些null在类别中并不重要。

1 个答案:

答案 0 :(得分:0)

在上面的有用评论之后做了这个:

//Filter first
let filteredAZLista = nameArray.filter(
c => c.category !== "C closed" && 
c.category !== "closed" && 
c.category !== "C Closed"); 

alert("" + filteredAZLista.length); 

//Loop through
//And Push out
for(var i=0;i<filteredAZLista.length;i++){ 
     standardAZList.push(filteredAZLista[i]); 
    alert("After removing name count is inside remove:" + standardAZList.length); 
}