【问题标题】:Remove entire object from a json array javascript从 json 数组 javascript 中删除整个对象
【发布时间】:2022-01-19 06:32:50
【问题描述】:

我有一个json数组,如下图

标记 1 的位置为 Null,如何从数组中删除整个标记 1 对象 所以我在数组中只剩下标记 2,3 和 4 吗?谢谢

【问题讨论】:

    标签: javascript arrays reactjs json filter


    【解决方案1】:
    jsonArray = jsonArray.filter(item => !item.position.includes(null))
    

    或者

    jsonArray = jsonArray.filter(item => item.position[0] !== null && item.position[1] !== null)
    

    【讨论】:

    • 嗨,我知道这是可行的,但我需要根据条件对其进行过滤,位置 = null
    • @Aaron 位置是一个包含空值的列表,但它本身不是空的。所以需要检查它的内容。
    • 是的,你有解决方案吗,这是我的实际问题
    • 这适用于 OP 的要求,但也会删除 Null Island 上的职位,所以准确地说是jsonArray = jsonArray.filter(item => item.position[0] !== null && item.position[1] !== null)
    • @Aaron 无法检查具有值的列表是否为空,甚至是空列表。我的意思是你可以检查,但结果是错误的。 [] === null 将始终返回 false。您可以获得的最接近的方法是检查该列表是否包含 null 我已经更新了我的答案以显示它。
    【解决方案2】:

    你可以这样做:

    const result = arrayOfObjects.filter((object) => {
      return object.position[0] !== null && object.position[1] !== null);
    }
    

    【讨论】:

      【解决方案3】:

      我们可以使用库 lodash 并使用 filter 方法,如下所示:

      var items = _.filter(items, function(item){return item.position});
      

      var items = _.filter(items, function(item){return item.position !== null && item.position !== ""});
      

      我们可以过滤掉位置为空的对象

      【讨论】:

        【解决方案4】:

        试试这个代码:

        const filtered = array.filter(items => items.position[0] != null || items.position[1] != null);
        console.log(filtered);
        

        【讨论】:

        • @Aaron 看到答案。我已经更新了
        猜你喜欢
        • 2018-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-19
        • 2012-02-29
        • 2016-11-08
        • 1970-01-01
        • 2018-07-25
        相关资源
        最近更新 更多