Вывод результата функции на экран через 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()