2010-06-09 2 views
99

alert()을 사용하여 JavaScript의 배열 구조를 어떻게 볼 수 있습니까?alert()을 사용하여 JavaScript에서 배열 구조를 볼 수 있습니까?

+14

이 질문에 대한 답변은 없지만 FireBug를 설치하고'console.log'를 사용해야합니다. JavaScript 객체의 내성을 위해 유용합니다. –

+0

배열 구조는 무엇을 의미합니까? 배열을 반복하면서 각 값을 경고 할 수 있습니다. –

+0

console.log의 @ Deniz Dogan은 shift + R 및 "console"옵션을 의미합니까? – pppttt

답변

113

매우 기본적인 접근 방식은 alert(arrayObj.join('\n'))이며 각 배열 요소가 한 행에 표시됩니다.

+3

위대한 작품입니다. "arrayObj"를 배열의 이름으로 대체하십시오. 따라서 배열의 이름이 myArray 인 경우 이것은 다음과 같은 코드 행입니다.'alert (myArray.join ('\ n')); ' –

3

디버깅 용으로 사용하는 경우 Firebug과 같은 JavaScript 디버거를 사용하는 것이 좋습니다. 배열 항목을 수정하고 코드를 단계적으로 실행하는 등 배열의 전체 내용을 볼 수 있습니다.

1

이 배열을 문자열로 변환하고 서식을 지정하는 함수를 작성할 수 있습니다. 더 나은 방법은 경고 대신 디버그 용으로 FireBug을 사용하는 것입니다.

50

편집 : Firefox 및 Google 크롬에는 이제 JSON 개체가 내장되어 있으므로 jQuery 플러그인을 사용하지 않고도 alert(JSON.stringify(myArray))이라고 말할 수 있습니다. 이것은 Javascript 언어 스펙의 일부가 아니므로 모든 브라우저에 JSON 오브젝트가 존재하지 않아야하지만 디버깅 목적으로는 매우 유용합니다. 다음과 같이

내가 jQuery-json plugin을 사용하는 경향이 당신의 자바 스크립트 코드를 디버깅, 그러나

[5, 6, 7, 11] 

같은 형식의 배열을 인쇄

alert($.toJSON(myArray)); 

, 나는 매우 그것은 Firebug 추천 실제로 Javascript 콘솔이 제공되므로 모든 페이지에 Javascript 코드를 입력하고 결과를 볼 수 있습니다. 배열과 같은 것은 이미 위에서 사용 된 사람이 읽을 수있는 형식으로 인쇄됩니다.

Firebug에는 디버거가 있으며, HTML과 CSS를보고 디버깅하는 데 도움이되는 화면도 있습니다.

32

아래의 기능에 JS 배열을 전달하고 그것은 당신이 alert(arrayObj.toSource());

+0

이 함수는 UI sortable 배열을 구문 분석하여 firefox를 손상시킵니다. – RezaSh

16

의 PHP에서 print_r() 함수와 동일한 기능을 수행하고 콘솔을 사용합니다 .dir()

+1

Firefox에서는 작동하지만 Safari 또는 MSIE에서는 작동하지 않습니다. http://stackoverflow.com/questions/1101584/javascript-tosource-method-not-working –

1

더 나은 사용 방화범 (크롬 콘솔 등)를 사용할 수 있습니다

alert(print_r(your array)); //call it like this 

function print_r(arr,level) { 
var dumped_text = ""; 
if(!level) level = 0; 

//The padding given at the beginning of the line. 
var level_padding = ""; 
for(var j=0;j<level+1;j++) level_padding += " "; 

if(typeof(arr) == 'object') { //Array/Hashes/Objects 
    for(var item in arr) { 
     var value = arr[item]; 

     if(typeof(value) == 'object') { //If it is an array, 
      dumped_text += level_padding + "'" + item + "' ...\n"; 
      dumped_text += print_r(value,level+1); 
     } else { 
      dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n"; 
     } 
    } 
} else { //Stings/Chars/Numbers etc. 
    dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; 
} 
return dumped_text; 
} 
6

toString()을 사용하는 것이 좋습니다.

Ex. alert(array.toString()), 또는 console.log(array.toString())

-4
alert($("#form_id").serialize()); 
+2

질문에 'javascript'라는 태그가 붙어 있습니다. 프레임 워크/라이브러리도 포함되어 있으며 순수한 JavaScript 응답이 필요합니다. " 그것이 사실이 아니더라도 ... 질문은 HTML 폼이 아니라 배열에 대해 묻는 것입니다. – Quentin

2

당신이 원하는 것은) (경고와 객체의 배열의 내용을 표시하는 경우, 난 당신이 객체 (간단한 경고 너무 toString 메소드()를 정의하는 권 해드립니다 MyArray); 배열의 전체 내용이 경고에 표시됩니다.당신이 포인트의 배열이있는 경우

//------------------------------------------------------------------- 
// Defininf the Point object 
function Point(CoordenadaX, CoordenadaY) { 
    // Sets the point coordinates depending on the parameters defined 
    switch (arguments.length) { 
     case 0: 
      this.x = null; 
      this.y = null; 
      break; 
     case 1: 
      this.x = CoordenadaX; 
      this.y = null; 
      break; 
     case 2: 
      this.x = CoordenadaX; 
      this.y = CoordenadaY; 
      break; 
    } 
    // This adds the toString Method to the point object so the 
    // point can be printed using alert(); 
    this.toString = function() { 
     return " (" + this.x + "," + this.y + ") "; 
    }; 
} 

다음 :

var MyArray = []; 
MyArray.push (new Point(5,6)); 
MyArray.push (new Point(7,9)); 

당신은 단순히 전화를 인쇄 할 수 있습니다 :이 도움이

alert(MyArray); 

희망 여기에

은 예입니다!

관련 문제