У меня есть ответ от бэкэнда, теперь формирующего новый объект. Также пытаюсь реализовать логику, если есть дублирующий объект сборки имени клиента, как у меня в ожидаемом результате? Я что-то упускаю в методе редукции, не принимая оператор спреда? Как правильно подходить к решению этой задачи?
main.js
const data = [
{
clientname: "SDK_AETNA",
preferencename: "apiKey",
preferencevalue: "a4ddaf8d-b74e-4158-87fb"
},
{
clientname: "SDK_CLOVER",
preferencename: "apiKey",
preferencevalue: "9e8323b3-93b3-4bc9-a02d"
},
{
clientname: "SDK_RMN",
preferencename: "apiKey",
preferencevalue: "60470ae8-ac70-429c-806"
}, {
clientname: "SDK_RMN",
preferencename: "plapiKey",
preferencevalue: "7c4f6820-e799-410c-876"
}
];
function mapData(data)
{
var tempArray= [];
var myOrderedArray = data.reduce(function (accumulator, currentValue)
{
var newObj = {};
newObj.clientName = accumulator.clientname;
newObject.apiKey = accumulator.preferencevalue;
tempArray.push(newObj);
if (accumulator.clientname === currentValue.clientname)
{
if (newObj.clientName === currentValue.clientname)
{
...newObj,
plapikey: currentValue.preferencevalue
}
}
return tempArray
}, []);
}
mapData(data);
const data = [{
clientname: "SDK_AETNA",
preferencename: "apiKey",
preferencevalue: "a4ddaf8d-b74e-4158-87fb"
}, {
clientname: "SDK_CLOVER",
preferencename: "apiKey",
preferencevalue: "9e8323b3-93b3-4bc9-a02d"
}, {
clientname: "SDK_RMN",
preferencename: "apiKey",
preferencevalue: "60470ae8-ac70-429c-806"
}, {
clientname: "SDK_RMN",
preferencename: "plapiKey",
preferencevalue: "7c4f6820-e799-410c-876"
}];
function mapData(data){
var tempArray= [];
var myOrderedArray = data.reduce(function (accumulator, currentValue) {
var newObj = {};
newObj.clientName = accumulator.clientname;
newObject.apiKey = accumulator.preferencevalue;
tempArray.push(newObj);
if (accumulator.clientname === currentValue.clientname) {
if (newObj.clientName === currentValue.clientname){
...newObj,
plapikey: currentValue.preferencevalue
}
}
return tempArray
}, [])
}
mapData(data);
ожидаемый результат
[{
clientname: "SDK_AETNA",
apiKey: "a4ddaf8d-b74e-4158-87fb"
}, {
clientname: "SDK_CLOVER",
apiKey: "9e8323b3-93b3-4bc9-a02d"
}, {
clientname: "SDK_RMN",
apiKey: "60470ae8-ac70-429c-806",
plapikey: "7c4f6820-e799-410c-876"
}];