Как я могу отобразить объект JavaScript?

Основываясь на предыдущих ответах на этот вопрос; следующая функция будет разделять строку (str) n-number (size) символов.

function chunk(str, size) {
    return str.match(new RegExp('.{1,' + size + '}', 'g'));
}

Демо

(function() {
  function chunk(str, size) {
    return str.match(new RegExp('.{1,' + size + '}', 'g'));
  }
  
  var str = 'HELLO WORLD';
  println('Simple binary representation:');
  println(chunk(textToBin(str), 8).join('\n'));
  println('\nNow for something crazy:');
  println(chunk(textToHex(str, 4), 8).map(function(h) { return '0x' + h }).join('  '));
  
  // Utiliy functions, you can ignore these.
  function textToBin(text) { return textToBase(text, 2, 8); }
  function textToHex(t, w) { return pad(textToBase(t,16,2), roundUp(t.length, w)*2, '00'); }
  function pad(val, len, chr) { return (repeat(chr, len) + val).slice(-len); }
  function print(text) { document.getElementById('out').innerHTML += (text || ''); }
  function println(text) { print((text || '') + '\n'); }
  function repeat(chr, n) { return new Array(n + 1).join(chr); }
  function textToBase(text, radix, n) {
    return text.split('').reduce(function(result, chr) {
      return result + pad(chr.charCodeAt(0).toString(radix), n, '0');
    }, '');
  }
  function roundUp(numToRound, multiple) { 
    if (multiple === 0) return numToRound;
    var remainder = numToRound % multiple;
    return remainder === 0 ? numToRound : numToRound + multiple - remainder;
  }
}());
#out {
  white-space: pre;
  font-size: 0.8em;
}
<div id="out"></div>

1441
задан George Kagan 8 November 2016 в 12:57
поделиться

4 ответа

Если вы хотите распечатать объект в целях отладки, используйте код:

var obj = {prop1: 'prop1Value', prop2: 'prop2Value', child: {childProp1: 'childProp1Value'}}
console.log(obj)

отобразит:

screenshot console chrome

Примечание: вы должны только зарегистрировать объект. Например, это не сработает:

console.log('My object : ' + obj)

Примечание ': Вы также можете использовать запятую в методе log , тогда первой строкой вывода будет строка, а после объект будет отображен:

console.log('My object: ', obj);
964
ответ дан 22 November 2019 в 20:15
поделиться

Что ж, Firefox (спасибо @Bojangles за подробную информацию) имеет метод Object.toSource () , который печатает объекты как JSON и function () {} .

Думаю, этого достаточно для большинства целей отладки.

65
ответ дан 22 November 2019 в 20:15
поделиться
var output = '';
for (var property in object) {
  output += property + ': ' + object[property]+'; ';
}
alert(output);
384
ответ дан 22 November 2019 в 20:15
поделиться

В ES2015, с помощью краткий синтаксис объявления свойства для литералов объектов, можно зарегистрировать объекты, также кратко сохранив имена переменной:

console.log("bwib:", bwib, "bwab:", bwab, "bwob": bwob) // old way A
console.log({bwib: bwib, bwab: bwab, bwob: bwob})       // old way B

console.log({bwib, bwab, bwob})                         // ES2015+ way

Demonstration in Firefox Console

0
ответ дан 22 November 2019 в 20:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: