jquery - ডেটা.ম্যাপ কোনও ফাংশন নয়



json (6)

আপনি যদি কোনও বস্তুর মানচিত্র করতে চান তবে আপনি লোডাশ ব্যবহার করতে পারেন। এটি নিশ্চিত হয়ে নিন যে এটি এনপিএম বা সুতার মাধ্যমে ইনস্টল করা হয়েছে এবং এটি আমদানি করুন।

লোদাশ সহ:

লোড্যাশ মানগুলি মানচিত্র করতে এবং কীগুলি সংরক্ষণ করার জন্য একটি ফাংশন _.mapValues করে।

_.mapValues({ one: 1, two: 2, three: 3 }, function (v) { return v * 3; });

// => { one: 3, two: 6, three: 9 }

আমি আমার মাথাটি এমন একটি ত্রুটির বিরুদ্ধে ধাক্কা দিচ্ছি যা আমি কীভাবে ঠিক করতে পারি। আমি নিম্নলিখিত আছে;

তাদেরকে JSON

{"products":
[
    {
        "product_id" : "123",
        "product_data" : {
            "image_id" : "1234",
            "text" : "foo",
            "link" : "bar",
            "image_url" : "baz"
        }
    },{
        "product_id" : "456",
        "product_data" : {
            "image_id" : "1234",
            "text" : "foo",
            "link" : "bar",
            "image_url" : "baz"
        }
    }
]}

এবং নিম্নলিখিত jQuery

function getData(data) {
    this.productID = data.product_id;
    this.productData = data.product_data;
    this.imageID = data.product_data.image_id;
    this.text = data.product_data.text;
    this.link = data.product_data.link;
    this.imageUrl = data.product_data.image_url;
}

$.getJSON("json/products.json").done(function (data) {

    var allProducts = data.map(function (item) {
        return new getData(item);
    });
});

তবুও আমি একটি ত্রুটি পাচ্ছি যে মানচিত্র.ডাটা একটি ফাংশন হিসাবে অপরিজ্ঞাত? এর দিকে তাকিয়ে আমি জানি না কী কাজ করছে না কারণ আমি এটি আগের ব্যবহৃত কোড থেকে একটি নতুন প্রকল্পে অনুলিপি করেছি। কেবল আলাদা জিনিসটি হল জসন উত্স। পূর্ববর্তীটির {"পণ্যগুলি" ছিল না: [] বন্ধনীগুলির আগে অংশ। এটা কি আমাকে ফেলে দিচ্ছে?


Answer #1

আপনি সর্বদা নিম্নলিখিতটি করতে পারেন:

const SomeCall = request.get(res => { 

const Store = []; 
Store.push(res.data);

Store.forEach(item => { DoSomethingNeat 
});
}); 

Answer #2

বস্তুর উপর পুনরাবৃত্তি করার সঠিক উপায় হ'ল

Object.keys(someObject).map(function(item)...
Object.keys(someObject).forEach(function(item)...;

// ES way
Object.keys(data).map(item => {...});
Object.keys(data).forEach(item => {...});

বিশদ জন্য এখানে পড়ুন


Answer #3

$.map() একটি ত্রুটি রয়েছে, এটি চেষ্টা করুন:

    function getData(data) {
        this.productID = data.product_id;
        this.productData = data.product_data;
        this.imageID = data.product_data.image_id;
        this.text = data.product_data.text;
        this.link = data.product_data.link;
        this.imageUrl = data.product_data.image_url;
    }

    $.getJSON("json.json?sdfsdfg").done(function (data) {

        var allPosts = $.map(data,function (item) {

            for (var i = 0; i < item.length; i++) {
                new getData(item[i]);
            };

        });

    }); 

আপনার কোডের ত্রুটিটি হ'ল আপনি আপনার এজেএক্স কলটিতে return করেছেন, সুতরাং এটি শুধুমাত্র একবারেই কার্যকর হয়েছিল।


Answer #4

ডেটা জেসন অবজেক্ট হওয়া দরকার, এটি করতে দয়া করে নিম্নলিখিতটি নিশ্চিত করুন:

ডেটা = $ .parseJSON (ডেটা);

এখন আপনি যেমন কিছু করতে পারেন:

ডেটা.ম্যাপ (ফাংশন (...) {...});

আমি আশা করি এটি কিছু সাহায্য করবে


Answer #5
this.$http.get('https://pokeapi.co/api/v2/pokemon')
.then(response => {
   if(response.status === 200)
   {
      this.usuarios = response.data.results.map(usuario => {
      return { name: usuario.name, url: usuario.url, captched: false } })
          }
    })
.catch( error => { console.log("Error al Cargar los Datos: " + error ) } )




json