преобразование массива в объект, где значения массива являются ключами объекта, а значения объекта пусты - PullRequest
0 голосов
/ 27 мая 2019

Я работаю над веб-приложением activjs. У меня есть массив типа

let arr = ["name","message", etc...];

. Я хочу преобразовать его в объект, но чтобы он выглядел как

let desired = { name:'', message:'' };

Я пробовал нескольковещи, но ни один из них не работал.

Ответы [ 3 ]

3 голосов
/ 27 мая 2019

Если вы просто хотите присвоить каждому значению в массиве значение пустой строки, используйте reduce:

let arr = ["name","message", "etc"];
let desired = arr.reduce((acc, curr) => (acc[curr] = "", acc), {});
console.log(desired);
.as-console-wrapper { max-height: 100% !important; top: auto; }

Синтаксис ES5:

var arr = ["name","message", "etc"];
var desired = arr.reduce(function(acc, curr) {
  acc[curr] = "";
  return acc;
}, {});
console.log(desired);
.as-console-wrapper { max-height: 100% !important; top: auto; }
1 голос
/ 27 мая 2019

Попробуйте это:

let arr = ["name","message", "etc"];
let desired = {};
for (let i = 0; i < arr.length; i++) {
    desired[arr[i]] = "";
}
console.log(desired);
0 голосов
/ 27 мая 2019

Вы также можете использовать forEach()

let arr = ['name', 'type', 'id', 'phone'];
let obj = {};
arr.forEach(i=>{obj[i] = ''});

console.log(obj);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...