javascript - 过滤数据 - 如何在 JavaScript 中过滤不需要的数据

标签 javascript express filter

我有一个 JSON 文件,其中包含需要过滤的数据。

json 是这个示例结构:

[{A:"data", C:"flightData", D:"FlightData"},
{B:"data", C:"flightData", D:"FlightData"},
{A:"data", C:"flightData", D:"FlightData"},
{B:"data", C:"flightData"},
{A:"data", C:"flightData", D:"FlightData"},
{B:"data", D:"FlightData"}]

我正在使用分组方法

 function groupBy(list, keyGetter) {
        const map = new Map();
        list.forEach((item) => {
            const key = keyGetter(item);
            const collection = map.get(key);
            if (!collection) {
                map.set(key, [item]);
            } else {
                collection.push(item);
            }
        });
        return map;
    }

首先我将 A 或 B 分组为数组

A 是 [[C],[D]]B 是[[C],[D]]

但是,如果数据没有 C 或 D,我需要删除该组,因为不需要数据。

 for (let value of s1) {

           // A or B
          const routeGrouped = groupBy(PriceArrayFinal, route =>
                   route.FinalArrival);



            for (let origin of s3) {

          // C or D 
         const originGrouped = groupBy(routeGrouped.get(value), route =>

                     route.FirstDepartCityName);


是否可以删除整个组,例如 A: [ [C], [] ] 如果 C 或 D 不存在。如果有空数组,需要删除A组还是B组?

编辑:预期输出:所有 A 或 B 组都有 C 和 D


[{A:"data", C:"flightData", D:"FlightData"},
{B:"data", C:"flightData", D:"FlightData"},
{A:"data", C:"flightData", D:"FlightData"},
{A:"data", C:"flightData", D:"FlightData"}] 

 [ [ [Array], [Array] ], [ [Array], [Array] ] ,[ [Array], [Array] ], [ [Array], [Array] ] ]

最佳答案

如果你想获取所有对C && D有值(value)的对象,你可以使用 filter像这样:

let input=[{A:"data",C:"flightData",D:"FlightData"},{B:"data",C:"flightData",D:"FlightData"},{A:"data",C:"flightData",D:"FlightData"},{B:"data",C:"flightData"},{A:"data",C:"flightData",D:"FlightData"},{B:"data",D:"FlightData"}];

let output = input.filter(({ C, D }) => C && D);

console.log(output)

关于javascript - 过滤数据 - 如何在 JavaScript 中过滤不需要的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55577795/

相关文章:

javascript - Firefox 扩展 : Error calling executeScript on file but not code

javascript - 只有最后一个输入有效

单击十字按钮不会删除列表项的 Javascript 待办事项列表

javascript - 简单的嵌套 Handlebars foreach 不起作用

javascript - kraken.js 后端可以更改网页内容吗?

JavaScript 过滤器返回 true 但不过滤

javascript - 为什么结果包含相同值的多个副本?

javascript - NPM 没有安装包。主机名/IP 地址与证书的替代名称不匹配 :

Javascript 数组按类型过滤

c++ - 使用WFP筛选器允许端口和IP对