Можете ли вы вернуть весь объект в виде строки, используя строковые литералы шаблона? - PullRequest
0 голосов
/ 27 января 2020

У меня есть вопрос:

Эта функция должна принимать аргумент в качестве объекта и возвращать строку с данными пользователя в виде:

'name: Mitch, age: 27, language: Javascript'

Примечание - Это хороший пример использования строковых литералов шаблона.

function createUserString(userObj) {

}

Может кто-нибудь помочь объяснить, как преобразовать свойства объекта в полную строку?

Ответы [ 4 ]

1 голос
/ 27 января 2020

Я думаю, что использование Object.entries() и Array.prototype.reduce() вместе может решить вашу проблему. Прочитайте из их документации:

Метод redu () выполняет функцию редуктора (которую вы предоставляете) для каждого элемента массива, в результате чего получается одно выходное значение.

Объект Метод .entries () возвращает массив собственных пар перечислимых строковых ключей заданного объекта [ключ, значение] в том же порядке, что и для for ... in l oop.

См. Возможное хорошее решение:

const user = {
  name: 'Mitch',
  age: 27,
  language: 'JavaScript',
  nickName: 'Cool Mitch' // just added one more property for representation
};

const createUserString = user => {
  const entries = Object.entries(user);
  return entries.reduce((a, [k,v]) => a ? `${a}, ${k}: ${v}` : `${k}: ${v}`, '');
}

console.log(createUserString(user));

Надеюсь, это поможет!

1 голос
/ 27 января 2020

Вы можете использовать Object.entries() и Array.map():

const person = {
  name: 'Mitch',
  age: 27,
  language: 'Javascript'
};

const res = Object.entries(person)
                  .map(([k, v]) => `${k}: ${v}`)
                  .join(', ');

console.log(res);
0 голосов
/ 27 января 2020

Вы можете попробовать перебрать перечисляемые свойства объекта, используя loda sh s forOwn, и объединить его в строку, используя строки шаблона:

function createUserString(userObj){
    let result = "";
    _.forOwn(userObj, (value, key) => {
        result += `${value}: ${key},`;
    }
    return result;

}
0 голосов
/ 27 января 2020

Вы можете сделать это с разрушением объекта

function createUserString({name, age, language}) {
   return `Name: ${name}, Age:${age}, Language:${language}`;
}

let user = {
  name: 'Mitch', 
  age: 27, 
  language: 'Javascript'
}

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