1. ホーム
  2. ジャバスクリプト

[解決済み】状態配列から項目を削除する方法は?

2022-04-10 23:40:58

質問

話は変わって、ボブ、サリー、ジャックを箱に入れることができるはずです。また、どちらかを箱から取り出すことも可能です。取り外すと、スロットは残りません。

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

今度は、例えば "Bob "を削除する必要があります。新しい配列になる。

["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});
  }
},