50個以上のオブジェクトを持つ配列が1つあります。この配列は、2つの配列を連結した結果です。この配列の要素はオブジェクトであり、各オブジェクトは、形式の日付文字列とキー「日付」があります。Javascript =>配列要素同士を日付で一致させる
`"2017-03-31T11:30:00.000Z"`
とテキストとキー「キャプション」を。だから私のような要素を持っている:私はより良い、より深い知っているRubyで
[
{date: "2017-03-31T11:30:00.000Z", caption: "text_1"},
{date: "2016-03-31T11:30:00.000Z", caption: "text_2"},
{date: "2016-03-31T11:30:00.000Z", caption: "text_3"},
{date: "2017-03-31T11:30:00.000Z", caption: "text_4"}
]
を、あなたは、配列の要素をマッピングし、新しいものとif文によって、条件リターンを返すことができます。私は、JSのようなものがあるかどうか疑問に思っていました。現在、配列をループして各要素を他の要素にマッチングしていますが、これは最もパフォーマンスの良い方法ではありません。私のような何かをしたいと思います:
let newArray = myArray.map((a,b) => { if (a.date === b.date) { return {text1: a.caption, text2: b.caption}}});
そうだろう結果:
は[
{text1: "text_1", text2: "text_4"},
{text1: "text_2", text2: "text_3"}
]
はこのようなものは、エレガントなだけでなく、パフォーマンスの何かが存在していますか?
おかげで...
だから、 '<>をクリックします'スニペットエディタを作成し、[mcve]を作成してください。 – mplungjan
var result = array.filter(i => i.date == date); –
条件付きでのみ返ってくるので、 'map()'ではありません。結果の配列は元の長さと同じ長さですが、穴がいっぱいです – charlietfl