Chrome JavaScript 개발자 콘솔 : 줄 바꿈없이 console.log ()를 호출 할 수 있나요?
console.log ()를 호출 할 때마다 새 줄 을 추가 하지 않고 메시지를 기록하기 위해 console.log ()를 사용하고 싶습니다 . 이것이 가능한가?
아니요, 불가능합니다. 모든 것을 한 줄에 넣으려면 문자열을 유지하고 연결해야합니다. 또는 다른 창과 같이 출력을 다른 곳에 두어야합니다.
NodeJS에서는 process.stdout.write를 사용할 수 있으며 원하는 경우 '\ n'을 추가 할 수 있습니다.
console.log(msg)
와 동일합니다 process.stdout.write(msg + '\n')
.
원하는만큼 넣을 수 있습니다 arguments
.
console.log('hi','these','words','will','be','separated','by','spaces',window,document)
개체 참조가 인라인으로 포함 된 한 줄에 모든 출력을 얻은 다음 거기에서 검사자를 드롭 다운 할 수 있습니다.
짧은 대답은 아니오입니다.
그러나
유스 케이스가 콘솔 부풀음을 피하면서 영구적으로 변경되는 데이터를 기록하려는 시도와 관련된 경우이를 달성하는 한 가지 방법 (특정 브라우저에서)은 console.clear()
각 출력 전에 사용하는 것 입니다.
function writeSingleLine (msg) {
console.clear();
console.log(msg);
}
writeSingleLine('this');
setTimeout( function () { writeSingleLine('is'); }, 1000);
setTimeout( function () { writeSingleLine('a'); }, 2000);
setTimeout( function () { writeSingleLine('hack'); }, 3000);
이로 인해 응용 프로그램 내에서 발생하는 다른 로깅 기능이 손상 될 수 있습니다.
면책 조항 : 나는 이것을 해킹으로 분류 할 것입니다.
예, 가능합니다 (아래 데모 확인)-네이티브 브라우저 콘솔 위에 자신 만의 가상 콘솔을 구현 한 다음이를 실제 콘솔과 동기화하면됩니다.
이것은 생각보다 훨씬 쉽습니다.
- 디스플레이 버퍼 유지 (예 : 각각 한 줄을 나타내는 문자열 배열)
console.clear()
이전 내용을 지우려면 쓰기 전에 호출console.log()
디스플레이 버퍼의 내용으로 콘솔을 채우려면 호출 (또는 경고, 오류 등)
사실 저는이 일을 한동안 해왔습니다. 짧고 기초적인 아이디어 구현은 다음 줄을 따라가는 것이지만 여전히 콘솔 내용 을 애니메이션 할 수 있습니다.
// =================================================
// Rudimentary implementation of a virtual console.
// =================================================
var virtualConsole = {
lines: [],
currentLine: 0,
log: function (msg, appendToCurrentLine) {
if (!appendToCurrentLine) virtualConsole.currentLine++;
if (appendToCurrentLine && virtualConsole.lines[virtualConsole.currentLine]) {
virtualConsole.lines[virtualConsole.currentLine] += msg;
} else {
virtualConsole.lines[virtualConsole.currentLine] = msg;
}
console.clear();
virtualConsole.lines.forEach(function (line) {
console.log(line);
});
},
clear: function () {
console.clear();
virtualConsole.currentLine = 0;
}
}
// =================================================
// Little demo to demonstrate how it looks.
// =================================================
// Write an initial console entry.
virtualConsole.log("Loading");
// Append to last line a few times.
var loadIndicatorInterval = setInterval(function () {
virtualConsole.log(".", true); // <- Append.
}, 500);
// Write a new line.
setTimeout(function () {
clearInterval(loadIndicatorInterval);
virtualConsole.log("Finished."); // <- New line.
}, 8000);
직접적인 콘솔 상호 작용과 믹싱 할 때 확실히 단점이 있고, 확실히보기 흉하게 보일 수 있지만, 확실히 유효한 용도를 가지고 있으며, 그것 없이는 달성 할 수 없습니다.
@shennan 아이디어에 대한 것 :
function init(poolSize) {
var pool = [];
console._log = console.log;
console.log = function log() {
pool.push(arguments);
while (pool.length > poolSize) pool.shift();
draw();
}
console.toLast = function toLast() {
while (pool.length > poolSize) pool.shift();
var last = pool.pop() || [];
for (var a = 0; a < arguments.length; a++) {
last[last.length++] = arguments[a];
}
pool.push(last);
draw();
}
function draw() {
console.clear();
for(var i = 0; i < pool.length; i++)
console._log.apply(console, pool[i]);
}
}
function restore() {
console.log = console._log;
delete console._log;
delete console.toLast;
}
init(3);
console.log(1);
console.log(2);
console.log(3);
console.log(4); // 1 will disappeared here
console.toLast(5); // 5 will go to row with 4
restore();
출력을 배열로 수집 한 다음 선호하는 구분 기호와 함께 조인 함수를 사용하십시오.
function echo(name, num){
var ar= [];
for(var i =0;i<num;i++){
ar.push(name);
}
console.log(ar.join(', '));
}
echo("apple",3)
모드 세부 사항 은 Array.prototype.join () 도 확인 하십시오.
var elements = ['Fire', 'Wind', 'Rain'];
console.log(elements.join());
// expected output: Fire,Wind,Rain
console.log(elements.join(''));
// expected output: FireWindRain
console.log(elements.join('-'));
// expected output: Fire-Wind-Rain
여러 줄에서 인쇄를 중지하는 유일한 목적은 전체 콘솔을 채우지 않으려면 값을 그룹화하는 것입니다.
추신 :- 출력을 위해 브라우저 콘솔을 참조하십시오
let arr = new Array(10).fill(0)
console.groupCollapsed('index')
arr.forEach((val,index) => {
console.log(index)
})
console.groupEnd()
You can use a spread operator to display output in the single line. The new feature of javascript ES6. see below example
for(let i = 1; i<=10; i++){
let arrData = [];
for(let j = 1; j<= 10; j++){
arrData.push(j+"X"+i+"="+(j*i));
}
console.log(...arrData);
}
That will print 1 to 10 table in single line.
// Source code for printing 2d array
window.onload = function () {
var A = [[1, 2], [3, 4]];
Print(A);
}
function Print(A) {
var rows = A.length;
var cols = A[0].length;
var line = "";
for (var r = 0; r < rows; r++) {
line = "";
for (var c = 0; c < cols; c++) {
line += A[r][c] + " ";
}
console.log(line);
}
}
'Development Tip' 카테고리의 다른 글
내가 [[fallthrough]]를 사용해도 GCC가 폴 스루에 대해 경고하는 이유는 무엇입니까? (0) | 2020.10.05 |
---|---|
PHP에서 효율적인 JPEG 이미지 크기 조정 (0) | 2020.10.05 |
Jenkins 파이프 라인 스크립트에서 @NonCPS의 효과는 무엇입니까? (0) | 2020.10.05 |
log4j를 사용하여 서로 다른 콘텐츠의 여러 로그 파일 만들기 (0) | 2020.10.05 |
DriverManager 대신 DataSource를 사용하는 이유는 무엇입니까? (0) | 2020.10.05 |