我有一個超過50個對象的數組。這個數組是連接兩個數組的結果。此陣列中的元素是對象和每個對象具有鍵「日期」,在格式的日期字符串:Javascript =>按日期將數組元素相互匹配
`"2017-03-31T11:30:00.000Z"`
和密鑰「字幕」的文本。所以,我有相同的元素:
[
{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"}
]
在Ruby中,我知道更好,更深入,則可以將在數組元素並返回新和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"}
]
難道這樣的事情,優雅的東西以及高性能的存在?
謝謝...
所以點擊'<>' snippet編輯器並創建[mcve],那麼我們可以更好地幫助 – mplungjan
var result = array.filter(i => i.date == date); –
因爲你只是有條件地返回而不是'map()'。結果數組的長度仍然與原始長度相同,但充滿了漏洞 – charlietfl