Строковый массив JavaScript для объекта

Как преобразовать массив строк:

var names = [
    "Bob",
    "Michael",
    "Lanny"
];

в такой объект?

var names = [
    {name:"Bob"},
    {name:"Michael"},
    {name:"Lanny"}
];

Откуда появился «Сааб»?

Phil 22.03.2018 00:40

Вы можете перебрать массив и присвоить новые значения таким элементам, как names[i] = {name: names[i]}.

RobG 22.03.2018 00:41

@PeterB Спасибо, что нашли дубликат. Добавляем в "список" :)

Phil 22.03.2018 00:48

@ Фил, не я, я только что поддержал обман Питера Б.

RobG 22.03.2018 00:49

@ Фил правильно, "Saab" нет, извини, я исправил

Elron 08.05.2020 19:13
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
5
5
11 624
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Супер простая работа Array.prototype.map()

names.map(name => ({ name }))

То есть ... сопоставить каждую запись (name) с объектом с ключом «имя» и значением name.

var names = [
    "Bob",
    "Michael",
    "Lanny"
];

console.info(names.map(name => ({ name })))

Глупый я, я забыл самую важную часть

names.map(name => name === 'Bob' ? 'Saab' : name)
     .map(name => ({ name }))

Ха-ха, спасибо, Фил :) Это "Saab" было орфографической ошибкой, но мне понравилось, что вы рассказали об этом, и дали ответ на это тоже.

Elron 08.05.2020 19:15

Ты тоже можешь это сделать:

var names = [
"Bob",
"Michael",
"Lanny"
];

var objNames = []

names.forEach(name => {
  objNames.push({
    name
  })
})

Используя ES6, вы можете установить name, он равен name: name

вы можете использовать функцию карты. В общем случае list.map (f) создаст новый список, в котором каждый элемент в позиции i является результатом применения f к элементу в той же позиции в исходном списке. Например:

names.map(function(s) { 
    return {name: s}
});

Используйте функцию Array.map (), чтобы сопоставить массив с объектами. Функция map () выполнит итерацию по массиву и вернет новый массив, содержащий результат выполнения функции для каждого элемента в исходном массиве. Например:

names = names.map(function(ele){return {"name":ele}});

Другие вопросы по теме