Search code examples
javascriptjsoncrudusingoperations

json crud operations using core javascript


I want to perform the following CRUD operations on this json 1)Update content_available as true for code (EN, CN). this is what i have tried. but it doesnt work.

myObj = { "data": [{ "code": "EN", "language": "English", "content_available": true, "isdefault": true }, { "code": "AR", "language": "Arabic", "content_available": true, "isdefault": false, "default" : true

    }, {
        "code": "BR",
        "language": "Brazilian Portuguese",
        "content_available": true,
        "isdefault": false
    }, {
        "code": "CN",
        "language": "Simplified Chinese",
        "content_available": true,
        "isdefault": false,
                "default" : true
    }, {
        "code": "TW",
        "language": "Traditional Chinese",
        "content_available": true,
        "isdefault": false
    }, {
        "code": "DE",
        "language": "German",
        "content_available": true,
        "isdefault": false
    }, {
        "code": "ES",
        "language": "Spanish",
        "content_available": true,
        "isdefault": false
    }, {
        "code": "FR",
        "language": "French",
        "content_available": true,
        "isdefault": false
    }, {
        "code": "JP",
        "language": "Japanese",
        "content_available": true,
        "isdefault": false,
                 "default" : true
    }, {
        "code": "RU",
        "language": "Russian",
        "content_available": false,
        "isdefault": false
    }],
    "success": true
    }

 function setContentAvailable() {
     for (var key in myObj.data) {
         if (myObj["data"]["code"] === "EN" && myObj[data][code] === "CN") {
             myObj.data.content_available = false;
         }
     }
 }
 setContentAvailable();
 console.log(myObj);

Solution

  • In your code, a for loop is used but the key is ignored... and the check for EN or CN should be || (or), not && (and).

    To Update content_available as true for code (EN, CN), the code should be:

     function setContentAvailable() {
       for (var key in myObj.data) {
         if (myObj["data"][key]["code"] === "EN" || myObj["data"][key]["code"] === "CN") {
             myObj["data"][key]["content_available"] = true;
         }
       }
     }
     setContentAvailable();