मैं अलर्ट के साथ जावास्क्रिप्ट में सरणी संरचना कैसे देख सकता हूं ()?


108

मैं जावास्क्रिप्ट का उपयोग करके सरणी की संरचना को कैसे देख सकता हूं alert()?


14
यह आपके प्रश्न का उत्तर नहीं देता है, लेकिन आपको फायरबग स्थापित करना चाहिए और उपयोग करना चाहिए console.log- यह जावास्क्रिप्ट ऑब्जेक्ट्स के आत्मनिरीक्षण के लिए बहुत अच्छा है।
डेनिज डोगन

सरणी संरचना के साथ आपका क्या मतलब है? आप सरणी के माध्यम से लूप कर सकते हैं और प्रत्येक मान को सचेत कर सकते हैं।
टिम श्मेल्टर

@ डेनिज़ डोगन द्वारा सांत्वना। क्या आप शिफ्ट + आर और विकल्प "कंसोल" से मतलब रखते हैं?
pppttt

1
@Deniz - console.debugवास्तव में बेहतर काम करेगा।
मैट बॉल

@ संरचना से मुझे लगता है कि सूचकांक और मूल्य का मतलब है, PHP
प्रिंट

जवाबों:


122

एक बहुत ही मूल दृष्टिकोण है alert(arrayObj.join('\n')), जो प्रत्येक सरणी तत्व को एक पंक्ति में प्रदर्शित करेगा।


5
यह बहुत अच्छा काम करता है। अपने सरणी के नाम के साथ "arrayObj" बदलें। तो अगर आपके एरे को myArray नाम दिया गया है, तो यह आपकी लाइन ऑफ कोड है:alert(myArray.join('\n'));
टोनी ब्रजुनस

54

EDIT: फ़ायरफ़ॉक्स और गूगल क्रोम में अब बिल्ट-इन JSONऑब्जेक्ट है, इसलिए आप alert(JSON.stringify(myArray))बिना jQuery प्लगइन का उपयोग किए बिना कह सकते हैं । यह जावास्क्रिप्ट भाषा युक्ति का हिस्सा नहीं है, इसलिए आपको JSONसभी ब्राउज़रों में मौजूद वस्तु पर भरोसा नहीं करना चाहिए , लेकिन डिबगिंग उद्देश्यों के लिए अविश्वसनीय रूप से उपयोगी है।

मैं jQuery-json प्लगइन का उपयोग इस प्रकार करता हूं :

alert( $.toJSON(myArray) );

यह सरणी को एक प्रारूप में प्रिंट करता है जैसे

[5, 6, 7, 11]

हालाँकि, आपके जावास्क्रिप्ट कोड को डीबग करने के लिए, मैं अत्यधिक अनुशंसा करता हूं कि Firebug यह वास्तव में एक जावास्क्रिप्ट कंसोल के साथ आता है, इसलिए आप किसी भी पेज के लिए जावास्क्रिप्ट कोड टाइप कर सकते हैं और परिणाम देख सकते हैं। सरणियों जैसी चीजें पहले से ही ऊपर उपयोग किए गए मानव-पठनीय रूप में मुद्रित हैं।

फायरबग में एक डीबगर भी है, साथ ही आपके HTML और CSS को देखने और डीबग करने में आपकी मदद के लिए स्क्रीन भी है।


32

नीचे दिए गए फ़ंक्शन के लिए अपना js ऐरे पास करें और यह php print_r () फ़ंक्शन के समान होगा

 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;
}

यह फ़ंक्शन फ़ायरफ़ॉक्स को UI सॉर्ट करने योग्य सरणी पार्स करने के साथ क्रैश हो जाता है।
शाहरुखियन


8

मैं toString () का उपयोग करने की सलाह दूंगा।

पूर्व। alert(array.toString()), याconsole.log(array.toString())


3

यदि यह डिबगिंग उद्देश्यों के लिए है, मैं तुम्हें इस तरह के रूप एक JavaScript डीबगर का उपयोग की सलाह देंगे Firebug । यह आपको सारणी प्रविष्टियों को संशोधित करने और कोड के माध्यम से कदम बढ़ाने सहित सरणियों की पूरी सामग्री और बहुत कुछ देखने देगा।


2

यदि आप जो चाहते हैं, वह एक अलर्ट () ऑब्जेक्ट्स की एक सरणी के साथ दिखाना है, तो मैं आपको एक साधारण अलर्ट (MyArray) के साथ ऑब्जेक्ट (toString) विधि में परिभाषित करने के लिए फिर से तैयार करता हूं; सरणी की पूरी सामग्री को अलर्ट में दिखाया जाएगा।

यहाँ एक उदाहरण है:

//-------------------------------------------------------------------
// 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);

उम्मीद है की यह मदद करेगा!


1

आप एक फ़ंक्शन लिख सकते हैं जो इस सरणी को स्ट्रिंग के रूप में रूपांतरित और प्रारूपित करेगा। इससे भी बेहतर: अलर्ट के बजाय डीबगिंग के लिए फायरबग का उपयोग करें ।


1

फायरबग (क्रोम कंसोल आदि) का बेहतर उपयोग करें और कंसोल का उपयोग करें ।ir ()


1

पठनीयता उद्देश्यों के लिए आप इसका उपयोग कर सकते हैं:

alert(JSON.stringify(someArrayOrObj, '', 2));

JSON.stringify () के बारे में अधिक ।

उदाहरण:

let user = {
  name: "John",
  age: 30,
  roles: {
    isAdmin: false,
    isEditor: true
  }
};

alert(JSON.stringify(user, "", 2));
/* Result:
{
  "name": "John",
  "age": 30,
  "roles": {
    "isAdmin": false,
    "isEditor": true
  }
} 
*/

-5
alert($("#form_id").serialize());

3
प्रश्न को टैग javascriptकिया गया है जो कहता है कि "जब तक एक रूपरेखा / पुस्तकालय के लिए एक टैग भी शामिल नहीं होता है, शुद्ध जावास्क्रिप्ट उत्तर अपेक्षित होता है"। यहां तक ​​कि अगर यह मामला नहीं था ... सवाल एक सरणी के बारे में पूछ रहा है, एक HTML फॉर्म नहीं।
क्वेंटिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.