【问题标题】:JavaScript - How to filter array based on a stringJavaScript - 如何根据字符串过滤数组
【发布时间】: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 =&gt; c.category !== "C closed" &amp;&amp; c.category !== "closed" &amp;&amp; c.category !== "C Closed"); // filteredAZList = nameArray.filter(location =&gt; location.category !== Cclosed || CClose || CClosed) alert("" + filteredAZLista.length); for(var i=0;i&lt;filteredAZLista.length;i++){ standardAZList.push(filteredAZLista[i]); alert("After removing name count is inside remove:" + standardAZList.length); }

标签: javascript arrays for-loop


【解决方案1】:

在上面有用的 cmets 之后这样做:

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

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 2022-11-24
    • 2020-08-15
    • 2012-12-06
    • 1970-01-01
    • 2018-06-25
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多