Как перебрать массив объектов и вернуть значение ключа как часть строки - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь перебрать массив объектов и вернуть отформатированную версию ключа, значение каждого объекта.

function formattedTotalandTax() {
  let formattedData = [];
  totalAndTax = [{Total: 20.64}, {Tax: 1.64}]  
  for (const [key, value] of Object.entries(totalAndTax)) {
    formattedData.push([`${key}` + ':' + '    ' + `${value}`]);
  }
  return formattedData;
};

это результат, который я получаю

0: ["0:    [object Object]"]
1: ["0:    [object Object]"]

Я хочу, чтобы результат был

[["Total:    20.64"], ["Tax:    1.64"]]

Ответы [ 3 ]

0 голосов
/ 29 декабря 2018

let totalAndTax = [{Total: 20.64}, {Tax: 1.64}]; 

let result = totalAndTax.map((obj) => {
   let arr = Object.entries(obj)[0];
   
   return [`${arr[0]}:   ${arr[1]}`];
}) 

console.log(result);
0 голосов
/ 29 декабря 2018

Вы можете использовать map дважды так:

function formattedTotalandTax(totalAndTax) {
    return totalAndTax.map(oneTotalAndTax => 
        Object.entries(oneTotalAndTax).map(([key, value]) => `${key}:    ${value}`)
    );
}

console.log(formattedTotalandTax([{Total: 20.64}, {Tax: 1.64}]));
0 голосов
/ 29 декабря 2018

Это происходит потому, что вы пытаетесь перебрать массив.Вы должны повторить элемент массива:)

function formattedTotalandTax() {
  let formattedData = [];
  totalAndTax = [{Total: 20.64}, {Tax: 1.64}]
  for (let oneTotalAndTax of totalAndTax) {
    for (const [key, value] of Object.entries(oneTotalAndTax)) {
      formattedData.push([`${key}` + ':' + '    ' + `${value}`]);
    }
  }
  return formattedData;
};

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