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এছাড়াও n। return 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.