Вывод результата функции на экран через document.write() js

Хочу вывести результат работы функции сортировки объектов. Применяю document.write(функция()). На экране получается [object Object],[object Object],[object Object]. Код прилагаю

let first = {
  a: 'a',
  b: 3,
  }
let second = {
  a: 'b',
  b: 2,
  }
let third = {
  a: 'c',
  b: 5,
  }
  
arrSort = [first, second, third];

let getSortedArray = function (arrSortObj, nameSort) {
  
  for (let i = 0; i < arrSortObj.length; i++) {
    let k = i;
    
    for (let j = i; j < arrSortObj.length; j++) {
      if (arrSortObj[j][nameSort] < arrSortObj[k][nameSort]) {
        k = j;
      }
    }
        
    let swap = arrSortObj[i];
    arrSortObj[i] = arrSortObj[k];
    arrSortObj[k] = swap;
  }  
  return arrSortObj;
}
  getSortedArray(arrSort, 'b');
  /*let el = document.getElementById("content");
  el.innerHTML = getSortedArray(arrSort, 'b');*/
  console.log(getSortedArray(arrSort, 'b'));
  document.write(getSortedArray(arrSort, 'b'));

Ответы (1 шт):

Автор решения: Aziz Umarov

Можно так.

Использовать JSON.stringify И обернуть в <pre> для выразительности

document.write("<pre>");
document.write(JSON.stringify(getSortedArray(arrSort, 'b'), undefined, 2));
document.write("</pre>");

let first = {
  a: 'a',
  b: 3,
  }
let second = {
  a: 'b',
  b: 2,
  }
let third = {
  a: 'c',
  b: 5,
  }
  
arrSort = [first, second, third];

let getSortedArray = function (arrSortObj, nameSort) {
  
  for (let i = 0; i < arrSortObj.length; i++) {
    let k = i;
    
    for (let j = i; j < arrSortObj.length; j++) {
      if (arrSortObj[j][nameSort] < arrSortObj[k][nameSort]) {
        k = j;
      }
    }
        
    let swap = arrSortObj[i];
    arrSortObj[i] = arrSortObj[k];
    arrSortObj[k] = swap;
  }  
  return arrSortObj;
}
  getSortedArray(arrSort, 'b');
  /*let el = document.getElementById("content");
  el.innerHTML = getSortedArray(arrSort, 'b');*/
  //console.log(getSortedArray(arrSort, 'b'));
  document.write("<pre>");
  document.write(JSON.stringify(getSortedArray(arrSort, 'b'), undefined, 2));
  document.write("</pre>");

А [object Object],[object Object],[object Object] у Вас получается по следующей причине

let first = {
      a: 'a',
      b: 3,
      };
      
      
console.log(first);

console.log(first.toString())
    

Метод document.write работает со строками, а по умолчанию объект конвертируется в String через метод .toString()

→ Ссылка