Вы можете .map()
каждой строки разделить массив [key, value]
, где key
- это часть слева от :
, а value
- это число справа от :
. Затем вы можете использовать Object.fromEntries()
, чтобы построить объект из ваших массивов пары ключ-значение:
const array = ["Social Network: 1", "Tasks: 1", "Calendar: 1", "Journal: 1", "Business Contact Manager: 2"];
const res = Object.fromEntries(array.map(str => {
const [a, b] = str.split(': ');
return [a, +b];
}));
console.log(res);
В качестве альтернативы, если вы не можете поддерживать Object.fromEntries()
, вы можете вместо этого использовать Object.assign()
, сопоставляя объект и затем распространяя сопоставленные объекты в аргументы .assign()
:
const array = ["Social Network: 1", "Tasks: 1", "Calendar: 1", "Journal: 1", "Business Contact Manager: 2"];
const res = Object.assign({}, ...array.map(str => {
const [a, b] = str.split(': ');
return {[a]: +b};
}));
console.log(res);