我有一个超过50个对象的数组 . 这个数组是concat(ing)两个数组的结果 . 此数组中的元素是对象,每个对象都具有关键字'date',日期字符串格式为:
`"2017-03-31T11:30:00.000Z"`
并用文字键入' Headers ' . 所以我有这样的元素:
[
{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"}
]
这样的事情,优雅和高效的东西存在吗?
谢谢...
1 回答
你的问题的答案是:
不,Javascript中没有任何功能可以按照您的要求优雅地完成您想要的功能(不确定性能) .
对于您的特定用例,我只需创建一个使用日期作为键的新对象并收集不同的 Headers ,然后将该对象转换为数组: