Название должно быть довольно понятным. Как я могу превратить следующий массив:
[
"Bargain",
"deal",
"Consistent",
"Steady; regular",
"Accurately",
"a thing bought or offered for sale much more cheaply than is usual or expected.",
"Charge",
"demand (an amount) as a price for a service rendered or goods supplied."
]
В приведенный ниже массив:
[
{"Bargain": "deal"},
{"Consistent": "Steady; regular"},
{"Accurately": "a thing bought or offered for sale much more cheaply than is usual or expected."},
{"Charge": "demand (an amount) as a price for a service rendered or goods supplied."}
]
Решение может быть простым, но я не могу найти простой способ его достижения. Я попытался создать 2 отдельных массива и отфильтровать элементы каждого массива, удалив нечетные значения в первом и четные значения во втором, прежде чем объединить их после, но это кажется излишним.
Есть ли простой способ добиться этого?
(Да, я знаю, что определение «точно»… странно)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


вы можете сделать это с помощью простого цикла for:
const data = [
"Bargain",
"deal",
"Consistent",
"Steady; regular",
"Accurately",
"a thing bought or offered for sale much more cheaply than is usual or expected.",
"Charge",
"demand (an amount) as a price for a service rendered or goods supplied."
];
let result = [];
for (let i = 0; i < data.length; i += 2) {
result.push({
[data[i]]: data[i + 1]
});
}
console.info(result);Вы можете использовать Array.from следующим образом:
const input = [
"Bargain",
"deal",
"Consistent",
"Steady; regular",
"Accurately",
"a thing bought or offered for sale much more cheaply than is usual or expected.",
"Charge",
"demand (an amount) as a price for a service rendered or goods supplied."
]
const length = Math.ceil(input.length / 2)
const output = Array.from({ length }, (_, i) =>
({ [input[i*2]]: input[i*2+1] })
);
console.info(output)