2016-11-29 8 views
0

から要素を取得し、私はこれが返されpassword.get('errors'));から返されたものを見るためにconsole.log('errors: ' + password.get('errors'));を使用して、コンソールでいます:私は、このマップされた配列から要素"validation.password.tooLong"にアクセスしたいマッピングされた配列

List [ Map { "id": "validation.password.tooLong", "defaultMessage": "La password deve avere massimo {max} caratteri", "values": Map { "max": 16 } } ] 

、私は方法がわかりませんよ正確にこれを行うには。私はこれがマッピングされた配列であることを100%確信していません、私はそれが上記の[Map...のためだと仮定しています。

答えて

2

ようget()機能を使用する必要があるマップから値を取得するには、私は、このように、あなたがimmutable.jsを使用していると仮定

const errors = password.get('errors'); 
const errorId = errors.get(0).get('id'); 

これらのクラスのメソッドを使用してアクセスするために必要なデータを取得します。リストはListクラスのインスタンスであり、プロパティーは0ではありませんが、配列から値を返すメソッドgetがあり、クロージャーに格納されているため、undefinedがあります。変異を防ぎ、不変性を保証する特別なソリューションです(値を更新する場合はmyList[0] = valueの代わりにset(0, value)を使用する必要がありますので、[0]経由のアクセスはありません)。 Map(Mapは不変オブジェクトであり、key: valueを格納する)と同じものです。

あなたはそれについてもっと学ぶことができます:Immutable.js docs(しかし、私はあなたが正確にimmutable.jsを持っているかどうかは分かりません。多くの同様のライブラリがあります。

+0

不変のyesを使用していますが、この方法では取得できません。 '未定義のgetを読むことができません' – DaveDavidson

+0

エラー 'errors.get is not a function'を受け取ります。 – DaveDavidson

+0

hm ... [jsfiddle](https://jsfiddle.net/b96p2qs9/)のようなものです。だから 'password.get( 'errors')。get(0)'は 'undefined'を返しますか?はいの場合 - ImmutableJSオブジェクトの代わりに文字列のように見えます。したがって、それを扱うには2通りの方法があります: –

0

あなたはコードの下で試すことができます。

var response = password.get('errors'); 
var result = response[0]['id']; 
+0

この戻り値は、未定義のプロパティを読み取ることができません。 – DaveDavidson

+0

「レスポンス」とは何ですか?あなたの状況に関する詳細を私に見せてもらえますか? –

0

あなたは

var res = password.get('errors'); 
var ans = res[0].get('id'); 
+0

エラーが表示されます。未定義のプロパティ 'get'を読み取ることができません。 – DaveDavidson

関連する問題