使用 JAVASCRIPT 将名称值对添加到 JSON 中的数组对象

Adding a name value pair to an array object in JSON using JAVASCRIPT

我想实现这个: "Check the key name default is available or not, if available then add one more key in same object. => ("pin" : 91) " 在下面给出的 json 上。我试过下面的代码。

var 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 addKey(k) {
  for (var key in myObj.data) {
    if (myObj["data"][key] === k) {
      myObj["data"][key]["pin"] = "91";
    }
  }
}
addKey("default");
console.log(myObj);
function checkForKey(obj, key) {
    for (var i = 0; i < obj.data.length; i++) {
        if (obj.hasOwnProperty(obj.data[i]) && obj.data[i][key] !== undefined) {
            obj.data[i].pin = 91;
        }
    }
}

checkForKey(myObj, 'default');

首先,我们得到数据密钥。因为它是一个数组,所以我们对其进行迭代。然后,我们检查默认键是否有定义的值,只有当它被定义为任何值时才添加键针。

您需要做的就是遍历键名,如果不存在,则创建它。但是,请记住您的类型。 for/in 用于迭代对象,而不是数组,forEach() 是数组的首选。

var 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 addKey(k) {

  // myObj.data is an array. for/in loops should not be used on arrays
  // But forEach() is preferred on arrays
  myObj.data.forEach(function(obj){
    
    // Each array element is an object. We need to loop that object.
    // for/in loops are for objects
    for(var prop in obj){
      // Is the current property (key) name the same as the provided argument ("default")
      if(prop === k){
         // Add new key/value to the object
         obj["pin"] = "91";
      } 
    }
  });
}
addKey("default");
console.log(myObj);