JQuery ব্যবহার করে একটি জাভাস্ক্রিপ্ট অবজেক্টের বৈশিষ্ট্যগুলি চিহ্নিত করা


116

কোনও জিনিসের সদস্যদের উপর পুনরাবৃত্তি সম্পাদনের কোনও jQuery উপায় আছে যেমন:

    for (var member in obj) {
        ...
    }

আমি কেবল forআমার সুদৃশ্য jQuery স্বরলিপি মধ্যে থেকে এই স্টিকিং পছন্দ করি না !

উত্তর:


210
$.each( { name: "John", lang: "JS" }, function(i, n){
    alert( "Name: " + i + ", Value: " + n );
});

প্রতি


এছাড়াও আমার ধারণা, সতর্কতা nপুরোপুরি সঠিক নয়। কমপক্ষে এটি হতে পারেn.name
ইউজিন

2
@ ইউজিন: আপনার বক্তব্য আমি পাই না। প্রতিটি ফাংশন প্রথম আর্গুমেন্ট হিসাবে একটি অ্যারে বা অবজেক্ট এবং দ্বিতীয় হিসাবে একটি ফাংশন নেয়। এই ফাংশনগুলি অ্যারে / অবজেক্টের প্রতিটি সম্পত্তিতে প্রতিটি উপাদানের জন্য কল্ড পায়। প্রতিবার ফাংশনটি ডাকা হলে, এটি সূচি এবং মান / নাম এবং মানটি আর্গুমেন্ট হিসাবে পাস করে। আমার উদাহরণে "এন" প্যারামিটারটি "জন" এবং "জেএস" দুটি স্ট্রিং। "নাম" সম্পত্তিটি হবে "অপরিজ্ঞাত"।
টিম বাথ

হাঁ। আমি এখানে ভুল ছিল। একরকম আমি ভেবেছিলাম, বস্তুর প্রতিটি সম্পত্তি হ'ল উদাহরণ হিসাবে সম্পত্তি নামের যা একটি স্ট্রিং object চক্রের যে সমস্ত ভুল। খুব দুঃখিত. :)
ইউজিন

4
প্রতিটি আরও অনেক বৈশিষ্ট্য পেয়েছে: thisএছাড়াও nreturn falseপ্রতিটি লুপ ভেঙে দেয় ...
অ্যান্ডি

56

আপনি eachকেবল অ্যারেগুলিতে নয়, অবজেক্টগুলির জন্যও ব্যবহার করতে পারেন :

var obj = {
    foo: "bar",
    baz: "quux"
};
jQuery.each(obj, function(name, value) {
    alert(name + ": " + value);
});

9

এই পদ্ধতিটি অবজেক্ট বৈশিষ্ট্যগুলির মধ্য দিয়ে চলবে এবং ক্রমবর্ধমান ইনডেন্ট সহ কনসোলে তাদের লিখবে:

function enumerate(o,s){

    //if s isn't defined, set it to an empty string
    s = typeof s !== 'undefined' ? s : "";

    //iterate across o, passing keys as k and values as v
    $.each(o, function(k,v){

        //if v has nested depth
        if(typeof v == "object"){

            //write the key to the console
            console.log(s+k+": ");

            //recursively call enumerate on the nested properties
            enumerate(v,s+"  ");

        } else {

            //log the key & value
            console.log(s+k+": "+String(v));
        }
    });
}

আপনি যে বস্তুর মাধ্যমে পুনরাবৃত্তি করতে চান তা কেবল এটি পাস করুন:

var response = $.ajax({
    url: myurl,
    dataType: "json"
})
.done(function(a){
   console.log("Returned values:");
   enumerate(a);
})
.fail(function(){ console.log("request failed");});

"আনকাচড টাইপ এরিয়ার: নাল'র সম্পত্তি 'দৈর্ঘ্য' পড়তে পারে না - এর সাথে কোনও মান নাল ত্রুটি হলে এটি ব্যবহার করে
জাস্টিনস্টল

3

দেরীতে, তবে অবজেক্ট.কিগুলি ব্যবহার করে করা যেতে পারে ,

var a={key1:'value1',key2:'value2',key3:'value3',key4:'value4'},
  ulkeys=document.getElementById('object-keys'),str='';
var keys = Object.keys(a);
for(i=0,l=keys.length;i<l;i++){
   str+= '<li>'+keys[i]+' : '+a[keys[i]]+'</li>';
}
ulkeys.innerHTML=str;
<ul id="object-keys"></ul>

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.