为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用过滤器在subArray Null值Javascript中删除Array

如何使用过滤器在subArray Null值Javascript中删除Array

汪汪一只猫 2021-05-13 18:09:10
我想itineraryLinked: null从数组中删除值删除。我试过下面的代码,它不能正常工作,你能解释一下如何从数组中删除null itineraryLinked吗?子数组代码内部的数组从过滤器中删除null值。我想使用内部路线从数组中删除null或空元素这是我的乔恩let destinationList = [{    "name": "Bahamas",    "slug": "bahamas",    "description": "asdfsadf",    "weekEnabled": false,    "itineraries": [{      "name": "Les Bahamas - Archipel des Exumas",      "slug": "les-bahamas-archipel-des-exumas",      "itineraryLinked": null    }],    "featured": false,    "future": false,    "sort": 8,    "minPrice": null  },  {    "name": "Croatie & Monténégro",    "slug": "croatie-montenegro",    "description": "avfdsaf",    "thumbnail": "uploads/2019/02/2_croatie-thumbnail.jpg",    "weekEnabled": true,    "itineraries": [{        "name": "Croatie, la côte adriatique depuis Dubrovnik",        "slug": "croatie-la-cote-adriatique-depuis-dubrovnik",        "itineraryLinked": {          "name": "Monténégro, les gorges du Kotor depuis Dubrovnik",          "slug": "montenegro-les-gorges-du-kotor-depuis-dubrovnik"        }      },      {        "name": "Monténégro, les gorges du Kotor depuis Dubrovnik",        "slug": "montenegro-les-gorges-du-kotor-depuis-dubrovnik",        "itineraryLinked": {          "name": "Croatie, la côte adriatique depuis Dubrovnik",          "slug": "croatie-la-cote-adriatique-depuis-dubrovnik"        }      }    ],    "featured": false,    "future": false,    "sort": 3,    "minPrice": null  },  {    "name": "Guadeloupe",    "slug": "guadeloupe",
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

some内没有必要filter。您可以使用使用reduce与filter里面。


let destinationList = [{

    "name": "Bahamas",

    "slug": "bahamas",

    "description": "asdfsadf",

    "weekEnabled": false,

    "itineraries": [{

      "name": "Les Bahamas - Archipel des Exumas",

      "slug": "les-bahamas-archipel-des-exumas",

      "itineraryLinked": null

    }],

    "featured": false,

    "future": false,

    "sort": 8,

    "minPrice": null

  },

  {

    "name": "Croatie & Monténégro",

    "slug": "croatie-montenegro",

    "description": "avfdsaf",

    "thumbnail": "uploads/2019/02/2_croatie-thumbnail.jpg",

    "weekEnabled": true,

    "itineraries": [{

        "name": "Croatie, la côte adriatique depuis Dubrovnik",

        "slug": "croatie-la-cote-adriatique-depuis-dubrovnik",

        "itineraryLinked": {

          "name": "Monténégro, les gorges du Kotor depuis Dubrovnik",

          "slug": "montenegro-les-gorges-du-kotor-depuis-dubrovnik"

        }

      },

      {

        "name": "Monténégro, les gorges du Kotor depuis Dubrovnik",

        "slug": "montenegro-les-gorges-du-kotor-depuis-dubrovnik",

        "itineraryLinked": {

          "name": "Croatie, la côte adriatique depuis Dubrovnik",

          "slug": "croatie-la-cote-adriatique-depuis-dubrovnik"

        }

      }

    ],

    "featured": false,

    "future": false,

    "sort": 3,

    "minPrice": null

  },

  {

    "name": "Guadeloupe",

    "slug": "guadeloupe",

    "description": "sdafsda",

    "thumbnail": "uploads/2019/02/guadeloupe-thumbnail.jpg",

    "weekEnabled": false,

    "itineraries": [{

      "name": "Guadeloupe Marie Galante Les Saintes Antigua",

      "slug": "guadeloupe-marie-galante-les-saintes-antigua",

      "itineraryLinked": null

    }],

    "featured": false,

    "future": false,

    "sort": 6,

    "minPrice": null

  },

  {

    "name": "St Barth & îles Vierges",

    "slug": "st-barth-iles-vierges",

    "description": "sadfdsagf",

    "thumbnail": "uploads/2019/04/st-barth-iles-vierges-thumbnail.jpg",

    "weekEnabled": true,

    "itineraries": [{

        "name": "Iles Vierges, Tortola",

        "slug": "iles-vierges-tortola",

        "itineraryLinked": {

          "name": "Croisière Turquoise - Saint Martin, Saint Barth, Archipel d'Anguilla",

          "slug": "croisiere-turquoise-saint-martin-saint-barth-archipel-danguilla"

        }

      },

      {

        "name": "Croisière Turquoise - Saint Martin, Saint Barth, Archipel d'Anguilla",

        "slug": "croisiere-turquoise-saint-martin-saint-barth-archipel-danguilla",

        "itineraryLinked": {

          "name": "Iles Vierges, Tortola",

          "slug": "iles-vierges-tortola"

        }

      }

    ],

    "featured": false,

    "future": false,

    "sort": 5,

    "minPrice": null

  },

  {

    "name": "Côte d'Azur",

    "slug": "cote-dazur",

    "description": "sadf",

    "thumbnail": "uploads/2018/11/cote-dazur-thumbnail.jpg",

    "weekEnabled": null,

    "itineraries": [{

      "name": "Côte d'Azur des îles d'Or aux îles de Lérins",

      "slug": "cote-dazur-des-iles-dor-aux-iles-de-lerins",

      "itineraryLinked": null

    }],

    "featured": false,

    "future": false,

    "sort": 1,

    "minPrice": null

  }

];

    


const output = destinationList.reduce((accu, {itineraries}) => {

    accu.push(...itineraries.filter(({itineraryLinked}) => itineraryLinked !== null));

    return accu;

}, []);


console.log(output);



查看完整回答
反对 回复 2021-05-20
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

映射集合


let linkedItinery = destinationList.map(function(element) {

    // ...

    Filter out the subDocuments (with null values)

    element.itineraries = element.itineraries.filter(function(subElement) {

      return subElement.itineraryLinked !== null;

    });

    // Replace the original doc

    return element;

  });


查看完整回答
反对 回复 2021-05-20
  • 2 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信