2017-05-29 4 views
0

ImmutableJSを使用すると、「空の」値をListにプッシュして、同じ未変更のListを返すことができますか?私はリストxsとOption aを持っている場合たとえば、私のような何かをしたいと思います:ImmutableJS:未変更戻り値

xs.push(a.getOrElse(null)) // doesn't work as intended 
に相当

xs.concat(a.map(a => [a]).getOrElse([])) // works as intended 

私はクリーンな構文を使用したいとプッシュのO(1)効率。

+0

おそらく、 'xs ::: Nil'を意味しています。' xs'自体がリストであると仮定します。スカラー '::'では、左側の単一の要素と右側のリストとの間のリスト "cons"演算子です。 – Aivean

+0

実際に私は私が何を考えていたか分かりません。最初の行は関係ないので削除します – user2066880

答えて

0

ImmutableJSのpushメソッドは、0個以上の引数を取るため、空の配列のspread演算子を使用して、探している機能を取得できるはずです。

xs.push(...a.getOrElse([])) 

getOrElseから得られる結果は、配列形式である必要があります。

+0

これはうまくいかないと思います。これは空の配列を私のリストにプッシュします。 – user2066880

+0

申し訳ございませんが、テストしてください。私は答えを更新しました。それを修正するには、スプレッド演算子を使用できる必要があります。 – ecrothers

関連する問題