当前位置: 首页 > 面试题库 >

从状态数组中删除项目

诸葛卜霸
2023-03-14
问题内容

故事是,我应该能够将鲍勃,莎莉和杰克放进盒子里。我也可以从包装盒中取出。卸下后,将不留任何插槽。

people = ["Bob", "Sally", "Jack"]

我现在需要删除“鲍勃”。新的数组将是:

["Sally", "Jack"]

这是我的反应成分:

...

getInitialState: function() {
  return{
    people: [],
  }
},

selectPeople(e){
  this.setState({people: this.state.people.concat([e.target.value])})
},

removePeople(e){
  var array = this.state.people;
  var index = array.indexOf(e.target.value); // Let's say it's Bob.
  delete array[index];
},

...

在这里,我向您展示了一个最少的代码,因为它包含更多内容(onClick等)。关键部分是从数组中删除,删除,销毁“
Bob”,但removePeople()调用时不起作用。有任何想法吗?我一直在看这个,但由于使用React,所以我可能做错了。


问题答案:

要从数组中删除元素,只需执行以下操作:

array.splice(index, 1);

在您的情况下:

removePeople(e) {
  var array = [...this.state.people]; // make a separate copy of the array
  var index = array.indexOf(e.target.value)
  if (index !== -1) {
    array.splice(index, 1);
    this.setState({people: array});
  }
},


 类似资料:
  • 问题内容: 我试图找到在组件状态下从数组中删除元素的最佳方法。由于我不应该直接修改变量,是否有比我在这里有更好的方法(更简洁)从数组中删除元素?: 谢谢。 更新 这已更新为在setState中使用回调。在更新当前状态时,应执行此操作。 问题答案: 我见过的最干净的方法是:

  • 问题内容: 我使用下面的代码行遍历数据库中的一个表: 如果我打印出数组: 我会得到这个: 但是我想摆脱数组中的重复项,所以我使用 我得到下面的奇怪结果,这不是我想要的结果: 理想情况下,我认为它应该返回以下内容: 我该怎么做才能正确处理?我使用了错误的PHP语法/默认功能吗? 问题答案: 该功能将为您完成此操作。您只需要添加标志:

  • 我正在试图找到最好的方法,从处于组件状态的数组中删除元素。既然我不应该直接修改变量,那么有没有比这里更好(更简洁)的方法从数组中删除元素 谢谢你。 更新了 这已更新为使用setState中的回调。在更新当前状态时,应在引用当前状态时执行此操作。

  • 问题内容: 我应该读一个包含许多不同电子邮件地址的文件,并使用数组将它们打印出来。问题是我需要消除重复的电子邮件。 我能够尝试/捕捉并打印出电子邮件地址。但是,我不确定如何删除重复项。我对散列码或如何使用Set尚不了解。任何援助将不胜感激。 这是我到目前为止的内容: 问题答案: 简单的解决方案是使用Set Java, 因此设置自动删除重复值 并且在你的代码中你拥有数组,而不是将转换数组直接使用代码

  • 问题内容: 我有以下数组。 我想删除最后一个元素,即2。 我用过,但不会删除值。 问题答案: 使用拼接(索引,多个)

  • 这是我的数据: 使用Lodash,我如何删除具有重复id键的对象?有过滤器,地图和独特的东西,但不太确定。 我的真实数据集要大得多,有更多的键,但概念应该是一样的。