typescriptのオブジェクトのリストからアイテムを削除できません

ホッジスのとき

次のコードを使用して、Firebaseからオブジェクトのリストを取得しています。リストからアイテムを削除する必要がありますが、インデックスに対して-1を取得し続けます。私はここで何が間違っているのですか?

filterItineraries(filters: any): any {
  let num = 0;
  this.allItineraries = [];
  this.filteredItineraries = [];

  for (let i = 0; i < 2; i++) {
    if (i === 0) {
      num = 0;
    } else {
      num = (filters.numberOfDays - 1);
    }

    const query = this.dataSvc.getAllItineraries()
        .where('destination', '==', filters.destination)
        .where('dateRange', 'array-contains', filters.dateRange[num]);

    query.get()
        .then(itineraryListSnapshot => {
          this.allItineraries = [];

          itineraryListSnapshot.forEach(snap => {
            this.allItineraries.push({
              id: snap.id,
              jobCode: snap.data().jobCode,
              destination: snap.data().destination,
              startDate: snap.data().startDate,
              endDate: snap.data().endDate,
              workDetails: snap.data().workDetails,
              userId: snap.data().userId
            });

            const index: number = this.allItineraries.indexOf(filters.id);

            if (index !== -1) {
              this.allItineraries.splice(index, 1);
            }

            console.log('index', index);
            console.log('filters.id', filters.id);
            console.log('filteredItineraries',  this.allItineraries);
          });
        });
  }
}

console.log console.log

また、forループの外に移動しようとしましたが、index = -1です。

そして最後に私は試しました:

this.filteredItineraries = this.allItineraries;
const index: number = this.filteredItineraries.indexOf(filters.id);

if (index !== -1) {
  this.filteredItineraries.splice(index, 1);
}

console.log('index', index);
console.log('filters.id', filters.id);
console.log('filteredItineraries',  this.filteredItineraries);

インデックスは常に= -1

MTCoster

この行はあなたが望むことをしていません:

const index: number = this.allItineraries.indexOf(filters.id);

indexオブジェクトの配列である-1ため、は常にここにallItinerariesありますが、filters.idは(コンソール出力の外観から)文字列です。

(既存の比較はallItinerariesあるエントリを見つけるために、自分自身を反復処理する必要がありますee.id === filters.ide === filters.id


しかし、自分自身を繰り返す代わりに、filtermapアプローチを使用してみませんか?

this.allItineraries = itineraryListSnapshot
        .filter(snap => snap.id !== filters.id)
        .map(snap => { id: snap.id, ...snap.data() });

TypeScript> = 2.1でサポートされているオブジェクトスプレッド構文も使用しました

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

リストC#の単一のアイテム(オブジェクト)を更新できません

分類Dev

単一アイテムのnumpy配列からオブジェクトを抽出できません

分類Dev

アイテム削除時のObjectStateManagerエラーでオブジェクトが見つからなかったため、オブジェクトを削除できません

分類Dev

アプリをChromeウェブストアにアップロードできません-「このアイテムはアプリではありません。マニフェストからアプリセクションを削除してください。」

分類Dev

Typescriptを使用して、別の配列にリストされていないオブジェクト(アイテム)を配列jsonから削除します

分類Dev

C#のオブジェクトからプロパティを取得します-元々はレガシーシステムのbase64文字列からであり、元のバイナリにアクセスできません

分類Dev

アラートの削除:フラットリストからアイテムを削除できません

分類Dev

リストからアイテムを削除できません

分類Dev

オブジェクトのリストから特定のアイテムを削除する

分類Dev

リンクリストの最初のアイテムを削除できません

分類Dev

インデックスでアイテムを削除できません-'NoneType 'オブジェクトを整数として解釈できません-Python

分類Dev

ジェネリック関数のCNMutableContactからアイテムを削除できません

分類Dev

jsオブジェクトからキーと値のペアを削除できません

分類Dev

START_ARRAYトークンからオブジェクトのインスタンスを逆シリアル化できません

分類Dev

Java REST API:START_ARRAYトークンからオブジェクトのインスタンスを逆シリアル化できません

分類Dev

typescriptで、キーのリストを使用してオブジェクトから未定義タイプとnullタイプを削除できますか?

分類Dev

リクエストを使用してWebページから特定のアイテムを取得できません

分類Dev

FirebaseStreamクエリからオブジェクトのリストを返すことができません

分類Dev

FirebaseStreamクエリからオブジェクトのリストを返すことができません

分類Dev

TypeScript | カスタムタイプのオブジェクトをループできません

分類Dev

オブジェクトのプロパティをコンテキストから分解できません

分類Dev

Javascriptのオブジェクトからプロパティにアクセスできません

分類Dev

別のクラスからオブジェクトを呼び出す方法-アクセスできません

分類Dev

jodadateTimeオブジェクトからミリ秒を削除できません

分類Dev

ディープオブジェクトで特定のアイテムを返すことはできません

分類Dev

DynamoDB JsonMarshallerはオブジェクトのリストをデシリアライズできません

分類Dev

Python3:リストからアイテムを削除できません。リストの要素をスライスすることはできません

分類Dev

TypeScript-クラスのオブジェクト定義からインターフェイスを見ることができません

分類Dev

Typescriptのオブジェクトにアクセスできません

Related 関連記事

  1. 1

    リストC#の単一のアイテム(オブジェクト)を更新できません

  2. 2

    単一アイテムのnumpy配列からオブジェクトを抽出できません

  3. 3

    アイテム削除時のObjectStateManagerエラーでオブジェクトが見つからなかったため、オブジェクトを削除できません

  4. 4

    アプリをChromeウェブストアにアップロードできません-「このアイテムはアプリではありません。マニフェストからアプリセクションを削除してください。」

  5. 5

    Typescriptを使用して、別の配列にリストされていないオブジェクト(アイテム)を配列jsonから削除します

  6. 6

    C#のオブジェクトからプロパティを取得します-元々はレガシーシステムのbase64文字列からであり、元のバイナリにアクセスできません

  7. 7

    アラートの削除:フラットリストからアイテムを削除できません

  8. 8

    リストからアイテムを削除できません

  9. 9

    オブジェクトのリストから特定のアイテムを削除する

  10. 10

    リンクリストの最初のアイテムを削除できません

  11. 11

    インデックスでアイテムを削除できません-'NoneType 'オブジェクトを整数として解釈できません-Python

  12. 12

    ジェネリック関数のCNMutableContactからアイテムを削除できません

  13. 13

    jsオブジェクトからキーと値のペアを削除できません

  14. 14

    START_ARRAYトークンからオブジェクトのインスタンスを逆シリアル化できません

  15. 15

    Java REST API:START_ARRAYトークンからオブジェクトのインスタンスを逆シリアル化できません

  16. 16

    typescriptで、キーのリストを使用してオブジェクトから未定義タイプとnullタイプを削除できますか?

  17. 17

    リクエストを使用してWebページから特定のアイテムを取得できません

  18. 18

    FirebaseStreamクエリからオブジェクトのリストを返すことができません

  19. 19

    FirebaseStreamクエリからオブジェクトのリストを返すことができません

  20. 20

    TypeScript | カスタムタイプのオブジェクトをループできません

  21. 21

    オブジェクトのプロパティをコンテキストから分解できません

  22. 22

    Javascriptのオブジェクトからプロパティにアクセスできません

  23. 23

    別のクラスからオブジェクトを呼び出す方法-アクセスできません

  24. 24

    jodadateTimeオブジェクトからミリ秒を削除できません

  25. 25

    ディープオブジェクトで特定のアイテムを返すことはできません

  26. 26

    DynamoDB JsonMarshallerはオブジェクトのリストをデシリアライズできません

  27. 27

    Python3:リストからアイテムを削除できません。リストの要素をスライスすることはできません

  28. 28

    TypeScript-クラスのオブジェクト定義からインターフェイスを見ることができません

  29. 29

    Typescriptのオブジェクトにアクセスできません

ホットタグ

アーカイブ