কী এবং মান উভয়কে জ্যুচুরির একটি অ্যারেতে কীভাবে ঠেলা যায়


89

আমি আরএসএস ফিড পড়ছি এবং শিরোনাম এবং লিঙ্ক উভয়ই জ্যাকুয়েরিতে একটি অ্যারে তে ঠেলাচ্ছি

আমি যা করেছি তা হ'ল

var arr = [];

            $.getJSON("displayjson.php",function(data){
                $.each(data.news, function(i,news){
                    var title = news.title;
                    var link = news.link;
                    arr.push({title : link});
                });                      
            });

এবং আমি আবার অ্যারে ব্যবহার করে ব্যবহার করছি

$('#show').click(function(){
                $.each(arr, function(index, value){
                    alert( index +' : '+value);
                });
            });

তবে এটি আমাকে আউটপুট হিসাবে দেয়

1:[Object Object]
2:[Object Object]
3:[Object Object]

এটার মত ...

আমি কীভাবে টাইল এবং জোড়া হিসাবে লিঙ্ক পেতে পারি ( কী হিসাবে শিরোনাম এবং মান হিসাবে লিঙ্ক )

উত্তর:


190

জাভাস্ক্রিপ্ট অ্যারেতে কোনও কী নেই। সেই উদ্দেশ্যে বস্তুগুলি ব্যবহার করুন।

var obj = {};

$.getJSON("displayjson.php",function (data) {
    $.each(data.news, function (i, news) {
        obj[news.title] = news.link;
    });                      
});

// later:
$.each(obj, function (index, value) {
    alert( index + ' : ' + value );
});

জাভাস্ক্রিপ্টে, বস্তুগুলি মিশুক অ্যারের ভূমিকা পালন করে। সচেতন হন যে বস্তুর পুনরাবৃত্তি করার সময় কোনও সংজ্ঞায়িত "সাজানোর ক্রম" থাকে না (নীচে দেখুন)।

যাইহোক , আপনার ক্ষেত্রে এটি সত্যই পরিষ্কার নয় যে আপনি কেন আসল অবজেক্ট ( data.news) থেকে ডেটা স্থানান্তর করলেন । আপনি কেন কেবল সেই আশেপাশের অবজেক্টের কোনও রেফারেন্স দিচ্ছেন না ?


পূর্বাভাসযোগ্য পুনরাবৃত্তি এবং কী / মান আচরণ অর্জনের জন্য আপনি অবজেক্ট এবং অ্যারেগুলি একত্রিত করতে পারেন :

var arr = [];

$.getJSON("displayjson.php",function (data) {
    $.each(data.news, function (i, news) {
        arr.push({
            title: news.title, 
            link:  news.link
        });
    });                      
});

// later:
$.each(arr, function (index, value) {
    alert( value.title + ' : ' + value.link );
});

30

এই কোড

var title = news.title;
var link = news.link;
arr.push({title : link});

আপনি যা ভাবেন তা করছে না। "শিরোনাম" নামে একটি একক সদস্যের সাথে linkএবং মান হিসাবে যা কী ধাক্কা খায় তা হ'ল আসল titleমানটি ব্যবহৃত হয় না। দুটি ক্ষেত্রের সাহায্যে কোনও বস্তু সংরক্ষণ করতে আপনাকে এমন কিছু করতে হবে

arr.push({title:title, link:link});

বা সাম্প্রতিক জাভাস্ক্রিপ্ট অগ্রগতি সহ আপনি শর্টকাট ব্যবহার করতে পারেন

arr.push({title, link}); // Note: comma "," and not colon ":"

পাইথন টিপলের নিকটতম জিনিসটি পরিবর্তে এটি হত

arr.push([title, link]);

একবার আপনি আপনার বস্তু বা অ্যারে আছে arrঅ্যারের আপনি মান পারেন হিসাবে পেতে পারেন value.titleএবং value.linkধাক্কা অ্যারের সংস্করণের ক্ষেত্রে, অথবা, value[0], value[1]


19

আমি মনে করি আপনাকে কোনও বিষয় সংজ্ঞায়িত করতে হবে এবং তারপরে অ্যারেতে ধাক্কা দিতে হবে

var obj = {};
obj[name] = val;
ary.push(obj);

17
arr[title] = link;

আপনি অ্যারেতে চাপ দিচ্ছেন না , আপনি titleমানটির চাবি দিয়ে উপাদানটি সেট করছেন link। যেমন আপনার অ্যারে একটি বস্তু হওয়া উচিত।


2

আপনি এটি বোঝাতে পারেন:

var unEnumeratedArray = [];
var wtfObject = {
                 key    : 'val', 
                 0      : (undefined = 'Look, I\'m defined'),
                 'new'  : 'keyword', 
                 '{!}'  : 'use bracket syntax',
                 '        ': '8 spaces'
                };

for(var key in wtfObject){
    unEnumeratedArray[key] = wtfObject[key];
}
console.log('HAS KEYS PER VALUE NOW:', unEnumeratedArray, unEnumeratedArray[0], 
             unEnumeratedArray.key, unEnumeratedArray['new'], 
             unEnumeratedArray['{!}'], unEnumeratedArray['        ']);

আপনি কোনও অবজেক্টের মতো ({})[0] = 'txt';একটি সংখ্যা নির্ধারণ করতে পারেন : এবং আপনি কোনও অ্যারের জন্য একটি কী সেট করতে পারেন:([])['myKey'] = 'myVal';

আশাকরি এটা সাহায্য করবে :)

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