2016-12-18 9 views
1

不変の配列への連絡方法を知りたいですか?私が配列list = [4,1]で始まると想像してみましょう。そして、私はitems = [5,2,6]のようなアクションレスポンスから配列を受け取ります。結果が[4,1,5,2,6]であるコンカレント配列はどのようにして、その操作は変更できません。配列を不変に連結する方法JS

ボーナス:同じIDを持つアイテムをどのように上書きできますか(不変の方法)?店舗books=[{'id':1, 'title': 'Cool story'}, {'id':2, 'title': 'Bad story'}]の私たちの配列を想像してみましょう。書籍を上書きする必要がある他の配列(APIからの最後の同期)otherArray = [{'id':3, 'title': 'Super story'}, {'id':1, 'title': 'Very cool story'}]。結果は[{'id':2, 'title': 'Bad story'}], {'id':3, 'title': 'Super story'}, {'id':1, 'title': 'Very cool story'}]

+1

*「ボーナス」*いいえ**質問ごとに1つの**質問** 2つではありません。 2番目の質問がある場合は、別途質問してください(徹底的な調査をした後、もちろん)。 –

+0

*「同じIDを持つアイテムをどのように上書きするのですか(不変の方法)」*あなたはそうしません。いずれかのスロットに異なる値を持つ* new *配列を作成します。 –

答えて

5

です。JavaScriptには不変型がありません。

の既存のインスタンスを変更せずに配列を連結するように実際に求めているようです。

documentationに明示されているように、concat()メソッドがそれを行います。

1

組み込みの方法.concat()は問題を解決しますが、Lodash libraryを調べることをお勧めします。特に、ボーナス問題は_.unionBy(otherArray, books, "id")で解決できます。

+0

ありがとう、それを探します – alphiii

関連する問題