Ramda R.reduceBy
или R.groupBy
может вам помочь. В приведенном ниже примере R.reduceBy
группирует объекты в массиве по свойству name
, а затем объединяет сгруппированные элементы, создавая новый объект с помощью R.assoc
. Остальная комбинация R.toPairs
, R.map
и R.zipObj
вернет результат в нужную вам форму.
const fn = R.pipe(
R.reduceBy((res, {date, value}) => R.assoc(date, value, res), {}, R.prop('name')),
R.toPairs,
R.map(R.zipObj(['name', 'data']))
)
const data = [
{ name: 'xx1', date: '2017-09-03', value: 49 },
{ name: 'xx2', date: '2017-10-23', value: 67 },
{ name: 'xx2', date: '2017-12-01', value: 70 }
]
console.log(fn(data))
Вот ваш код, использующий другой элемент
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
</head>
<body>
<form id="form" method="post" action="phpfile.php">
<input type="hidden" name="ids" value="somevalue" /><input type="submit" value="Go">
</form>
<div id="link" href="">link</div>
<script>
$(document).ready(function () {
$('#link').on('click',function(){
alert('a');
$('#form').submit();
});
});
</script>
</body>
</html>