【问题标题】:Get array key to remove an array based on that array object获取数组键以删除基于该数组对象的数组
【发布时间】:2017-12-20 07:40:00
【问题描述】:

新问题,所以这是数组

[
    0: {
        "id" : "3"
        "name": "David",
        "age": "20"
    },
    1: {
        "id" : "6"
        "name": "",
        "age": "18"
    },
    2: {
        "id" : "8"
        "name": "Micheal",
        "age": "25"
    },
    3: {
        "id" : "9"
        "name": "Wonder Women",
        "age": "20"
    },
    4: {
        "id" : "12"
        "name": "Clark",
        "age": ""
    }
]

点击按钮时如何根据id删除?在我的应用程序中有一个删除按钮来删除这个数组。我认为它需要获取数组键才能删除数组。

例如:我可以得到 id=8,但是我怎样才能得到数组键 2 来删除数字 2 数组呢?

如有不明白,欢迎评论。谢谢。

【问题讨论】:

  • 你确定这是有效的数组吗?
  • 这只是一个例子。 1, 2, 3, 4 不应该在那里
  • 只是为了解释

标签: arrays function reactjs arrayobject array-key


【解决方案1】:
array.filter((obj) => {
    if (obj.id != yourId){
        return obj;
    }
})

并且不要忘记数组中对象中的所有逗号。 (在 id 之后)

【讨论】:

    【解决方案2】:

    如果你想直接操作数组的内容而不是返回新的数组,你可以试试这个

    let index = array.findIndex(obj => obj.id == objIdToDelete)
    if(index != -1) { array.splice(index, 1) }
    

    查看Array.prototype.splice()了解更多

    【讨论】:

    • 作为从数组中移除元素的场合,这是一个不错的方法,但在 react 中使用 splice 时要小心。
    【解决方案3】:

    假设你的数组是这样的:

     arr = [
      {"id":"3","name":"Clark"},
      {"id":"6","name":"David"},
      {"id":"8","name":"Miche"}
    ];
    
    id = 6;
    
    arr = $.grep(arr, function(data, index) {
       return data.id != id
    });
    

    现在这最终将返回删除 id=6 记录的数组

    【讨论】:

      【解决方案4】:

      假设您的数组存储在 obj 中,您可以使用 lodash 函数 remove 按以下方式删除数组中的一项。

      _.remove(obj, function(currentObject) {
          return currentObject.id == "8";
      });
      

      这将从您的数组中删除包含“8”的项目“2”

      【讨论】:

      • @AlanYong 这是一个很棒的库。
      猜你喜欢
      • 1970-01-01
      • 2015-06-19
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      相关资源
      最近更新 更多