javascript - анализ строки в объект JSON

1

Извините, немного нового в этом. Но я пытаюсь добиться следующего. У меня это (строка fullName возвращается из webapp UI, используя selenium webdriverIO):

const fullName = "Mr Jason Biggs";

И нужно, чтобы это выглядело так:

title: 'Mr',
name: 'Jason',
surname: 'Biggs',

Я попытался разбить имя, но не уверен, как добавить ak в v

const splitName = fullName.split(" ");
// But returns as [ 'Mr', 'Jason', 'Biggs' ]
  • 0
    arr = ['Mr', 'Jason', 'Biggs'] . beautiful_name = { title: arr[0], name: arr[1], surname: arr[2] }
  • 0
    добавить ак v? Что вы имеете в виду? В любом случае вы можете сделать { title:splitName[0], name:splitName[1], surname:splitName[3] }
Показать ещё 1 комментарий
Теги:

2 ответа

2

Просто создайте новый объект и назначьте его разделенные части на свои ключи:

const fullName = "Mr Jason Biggs";

const splitName = fullName.split(" "),
      object = { 
          title: splitName[0],
          name: splitName[1],
          surname: splitName[2]
      };
      
console.log(object);

Если у вас много строк, для выполнения которых нужно выполнить эту работу, просто оберните код в функцию getObject которая берет строку и возвращает объект:

function getObject(str) {
    const splitName = str.split(" ");
    return {
        title: splitName[0],
        name: splitName[1],
        surname: splitName[2]
    };
}


const arrayOfStrings = ["Mr Jason Biggs", "Dr Stephen Strange", "Ms Lilly Depp"];

console.log(arrayOfStrings.map(getObject));
1

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

    const fullName = "Mr Jason Biggs";

    // Split and assign to named vars
    const [title, name, surname] = fullName.split(' ');
    // Create object from the new vars with the property value shorthand
    const obj = {
      title,
      name,
      surname
    };
    
    console.log(obj);
  • 0
    Я просто хотел опубликовать тот же ответ (используя сокращенное имя свойства объекта). Я рад, что у кого-то была такая же идея. Возьми мой голос.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню