map.entries()
あなたのHTMLで
get mapEntries() { return Array.from(this.myMap.entries()); }
であるあなたが.next
を使用してを反復処理することができますMapIterator
を返します。 *ngFor
は配列に対してのみ反復処理を行い、iterator protocol(これはMapIterator
が実装しています)を使用して繰り返しません。
Maps are intentionally not supportedは序数ではないためです。
あなたはあなたのように見えるの配列を与えるであろうArray.from()
を経由して行うことができます配列に.entries
を変換したい場合:
[["key1", "val1"], ["key2", "val2"]]
また["key1", "key2"]
を返し、あなたが反復処理ができたArray.from(map.keys())
を使用することができますそれそうのように:
<div *ngFor="let key of mapKeys">{{ myMap.get(key) }}</div>
また、同様の配列にマップを変換するためにパイプを作成することができます。
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'mapToArray'})
export class MapToArray implements PipeTransform {
transform(value: Map): Array {
const entries = value.entries();
const result = [];
let done = false;
while (!done) {
const { value: currentValue, done: isDone } = entries.next();
result.push(currentValue);
done = isDone;
}
return result;
}
}
あなたはそれがない理由とは何かを持っているマップ上で反復処理することができるさまざまな方法がたくさんある見ることができるように、あなたは、あなたが要約*ngFor="let values of myMap | mapToArray"
として持っているものを使用することができますデフォルトで動作します。ユースケースに応じて(キーが必要な場合など)、それを実行する最善の方法を理解することはあなた次第です。
。myMapが実際に地図ではないかのように.entries()が見つかりません。 myMap宣言に何か問題がありますか? – Seb
私のアプリがesentに自分の.entries()を渡すように正しく設定されていないのですか? – Seb