Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON对象获取长度_Javascript_Jquery_Arrays_Json - Fatal编程技术网

Javascript JSON对象获取长度

Javascript JSON对象获取长度,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我有嵌套的JSON,如下所示: var data = [ { "id":"4", "name":"2nd anniversary", "date":"2015-12-17", "location":"Mumbai", "story_body":"Gzjjs jdk djks jdks jdkd jx djdb djd JD djbd djdj d", "short_link":"izWfs", "crea

我有嵌套的JSON,如下所示:

var data =  [
   {
      "id":"4",
      "name":"2nd anniversary",
      "date":"2015-12-17",
      "location":"Mumbai",
      "story_body":"Gzjjs jdk djks jdks jdkd jx djdb djd JD djbd djdj d",
      "short_link":"izWfs",
      "created_at":"2015-12-11 03:49:52",
      "path":[
         "\/SupportData\/ImpalzB2B\/uploads\/711453354154623.jpg",
         "\/SupportData\/ImpalzB2B\/uploads\/90294930451449759544217.jpg",
         "\/SupportData\/ImpalzB2B\/uploads\/471453355023537.jpg",
         "\/SupportData\/ImpalzB2B\/uploads\/90294930451449759544223.jpg",
         "\/SupportData\/ImpalzB2B\/uploads\/90294930451449759544179.jpg"
      ],
      "update_type":"3"
   },       
   {
     "id":"7",
     "name":"#1styearAnniversary",
     "date":"2016-01-20",
     "location":"Mumbai",
     "story_body":"Bsjsj jdkdk djdkdk dkdkf kdkf dkfj fjfj fjfkjdd djkd",
     "short_link":"FHXh0",
     "created_at":"2016-01-20 23:10:54",
     "path":"\/SupportData\/ImpalzB2B\/uploads\/11453356652175.jpg",
     "update_type":"3"
   },       
   {
      "id":"19",
      "name":"Product qetyfvhchv",
      "description":"Cheers Vgdhvjd hugging",
      "short_link":"jPE7G",
      "created_at":"2016-01-18 05:03:46",
      "path":"\/SupportData\/ImpalzB2B\/uploads\/90294930451453118625255.jpg",
      "update_type":"4"
   },
   {
      "id":"20",
      "name":"F frfgcgj ggvvhv",
      "description":" Vdhsj fgjjchk",
      "short_link":"hMn8K",
      "created_at":"2016-01-18 05:04:16",
      "path":"\/SupportData\/ImpalzB2B\/uploads\/90294930451453118654785.jpg",
      "update_type":"4"
   },       
   {
      "id":"25",
      "name":"Gshsh djdj djdkd dkkd",
      "description":"Bsjjd djjd djdirj dudir",
      "short_link":"dhT6l",
      "created_at":"2016-01-22 05:39:31",
      "path":[
         "\/SupportData\/ImpalzB2B\/uploads\/11453466369930.jpg",
         "\/SupportData\/ImpalzB2B\/uploads\/11453466369891.jpg",
         "\/SupportData\/ImpalzB2B\/uploads\/11453466369942.jpg",
         "\/SupportData\/ImpalzB2B\/uploads\/11453466369934.jpg",
         "\/SupportData\/ImpalzB2B\/uploads\/11453466369939.jpg"
      ],
      "update_type":"4"
   },
   {
      "id":"26",
      "name":"For Healthy Breakfast, head over to our new restaurant in Andheri",
      "description":"Delightful upma",
      "short_link":"CG0i4",
      "created_at":"2016-02-04 06:58:17",
      "path":"\/SupportData\/ImpalzB2B\/uploads\/11454594295456.jpg",
      "update_type":"4"
   },
   {
      "id":"1",
      "body":"#Awesome2Eat",
      "votes":"28",
      "update_type":"7",
      "short_link":"GcKAe",
      "created_at":"2016-02-04 01:28:53",
      "name":"nehil"
   },      
   {
      "id":"10",
      "body":"#Bouncy",
      "votes":"1",
      "update_type":"7",
      "short_link":"JXUxz",
      "created_at":"2016-02-04 00:12:52",
      "name":"nehil"
   },
   {
      "id":"11",
      "body":"#Superman",
      "votes":"0",
      "update_type":"7",
      "short_link":"4Keyd",
      "created_at":"2016-02-04 01:17:36",
      "name":"nehil"
   }       
]
如何从对象获取路径数组的长度? 我试了一下,长度不对

for (var key in data) {  
  if(data[key].update_type == '3'){ 
    console.log(data[key].path.length);     // 5 and 49 . It Should be 5 and 1
  } 
};  
这也是获取对象的每个元素的正确方法吗

for (var key in data) {  
   console.log(data[key].id);    
       $.each(data[key].path, function (i, obj) {
         console.log(obj);
       });
   };

小提琴链接:

因为
数据[key].path的值类型不是数组(第二个实例),而是
字符串。字符串还有一个length属性,它给出了字符串的长度

成功

for (var key in data) {  
  if(data[key].update_type == '3')
  { 
    if (typeof data[key].path == "string" )
    {
      console.log( 1 );
    }
    else
    {
       console.log(data[key].path.length);     // 5 and 49 . It Should be 5 and 1
       //to print all the elements on the console one by one
       if ( data[key].path && data[key].path.length > 0 )
       {
         data[key].path.forEach( function(value){
           console.log( value );
         } );
       }
    }
  } 
}  

因为
data[key].path的值类型不是数组(第二个实例),所以它是一个
字符串。字符串还有一个length属性,它给出了字符串的长度

成功

for (var key in data) {  
  if(data[key].update_type == '3')
  { 
    if (typeof data[key].path == "string" )
    {
      console.log( 1 );
    }
    else
    {
       console.log(data[key].path.length);     // 5 and 49 . It Should be 5 and 1
       //to print all the elements on the console one by one
       if ( data[key].path && data[key].path.length > 0 )
       {
         data[key].path.forEach( function(value){
           console.log( value );
         } );
       }
    }
  } 
}  

您可以使用
forEach
循环:

forEach()方法对每个数组执行一次提供的函数 元素

var数据=[{
“id”:“4”,
“姓名”:“两周年纪念日”,
“日期”:“2015-12-17”,
“地点”:“孟买”,
“故事体”:“Gzjjs jdk djks jdks jdkd jx djdb djd JD djbd djd”,
“短链接”:“izWfs”,
“创建时间”:“2015-12-11 03:49:52”,
“路径”:[
“\/SupportData\/ImpalzB2B\/uploads\/711453354154623.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/90294930451449759544217.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/471453355023537.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/90294930451449759544223.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/90294930451449759544179.jpg”
],
“更新类型”:“3”
}, {
“id”:“7”,
“姓名”:“#1周年纪念日”,
“日期”:“2016-01-20”,
“地点”:“孟买”,
“故事体”:“Bsjsj jdkdk DJDKF kdkf dkfj fjfj fjfkjdd djkd”,
“短链接”:“FHXh0”,
“创建时间”:“2016-01-20 23:10:54”,
“路径”:“\/SupportData\/ImpalzB2B\/uploads\/11453356652175.jpg”,
“更新类型”:“3”
}, {
“id”:“19”,
“名称”:“产品QETYFVHHV”,
“描述”:“为拥抱干杯”,
“短链接”:“jPE7G”,
“创建时间”:“2016-01-18 05:03:46”,
“路径”:“\/SupportData\/ImpalzB2B\/uploads\/90294930451453118625255.jpg”,
“更新类型”:“4”
}, {
“id”:“20”,
“名称”:“F frfgcgj ggvvhv”,
“说明”:“Vdhsj fgjjchk”,
“短链接”:“hMn8K”,
“创建时间”:“2016-01-18 05:04:16”,
“路径”:“\/SupportData\/ImpalzB2B\/uploads\/90294930451453118654785.jpg”,
“更新类型”:“4”
}, {
“id”:“25”,
“名称”:“Gshsh DJ DJ DKD dkkd”,
“说明”:“Bsjjd djjd djdirj dudir”,
“短链接”:“dhT6l”,
“创建时间”:“2016-01-22 05:39:31”,
“路径”:[
“\/SupportData\/ImpalzB2B\/uploads\/11453466369930.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/11453466369891.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/11453466369942.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/11453466369934.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/11453466369939.jpg”
],
“更新类型”:“4”
}, {
“id”:“26”,
“姓名”:“健康早餐,前往我们在安德烈的新餐厅”,
“描述”:“令人愉快的upma”,
“短链接”:“CG0i4”,
“创建时间”:“2016-02-04 06:58:17”,
“路径”:“\/SupportData\/ImpalzB2B\/uploads\/11454594295456.jpg”,
“更新类型”:“4”
}, {
“id”:“1”,
“body”:“Awesome2Eat”,
“投票”:“28”,
“更新类型”:“7”,
“短链接”:“GcKAe”,
“创建时间”:“2016-02-04 01:28:53”,
“名称”:“nehil”
}, {
“id”:“10”,
“身体”:“有弹性”,
“投票”:“1”,
“更新类型”:“7”,
“短链接”:“JXUxz”,
“创建时间”:“2016-02-04 00:12:52”,
“名称”:“nehil”
}, {
“id”:“11”,
“身体”:“超人”,
“投票数”:“0”,
“更新类型”:“7”,
“短链接”:“4Keyd”,
“创建时间”:“2016-02-04 01:17:36”,
“名称”:“nehil”
}]
data.forEach((a)=>{/*ES6 Arrow函数。也可以使用简单的'function(){}'*/
if(a.path的类型==“字符串”){
控制台日志(1);
}else if(a.path的类型!==“未定义”){
console.log(a.path.length);
}否则{
控制台日志(-1);
}

})
您可以使用
forEach
循环:

forEach()方法对每个数组执行一次提供的函数 元素

var数据=[{
“id”:“4”,
“姓名”:“两周年纪念日”,
“日期”:“2015-12-17”,
“地点”:“孟买”,
“故事体”:“Gzjjs jdk djks jdks jdkd jx djdb djd JD djbd djd”,
“短链接”:“izWfs”,
“创建时间”:“2015-12-11 03:49:52”,
“路径”:[
“\/SupportData\/ImpalzB2B\/uploads\/711453354154623.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/90294930451449759544217.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/471453355023537.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/90294930451449759544223.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/90294930451449759544179.jpg”
],
“更新类型”:“3”
}, {
“id”:“7”,
“姓名”:“#1周年纪念日”,
“日期”:“2016-01-20”,
“地点”:“孟买”,
“故事体”:“Bsjsj jdkdk DJDKF kdkf dkfj fjfj fjfkjdd djkd”,
“短链接”:“FHXh0”,
“创建时间”:“2016-01-20 23:10:54”,
“路径”:“\/SupportData\/ImpalzB2B\/uploads\/11453356652175.jpg”,
“更新类型”:“3”
}, {
“id”:“19”,
“名称”:“产品QETYFVHHV”,
“描述”:“为拥抱干杯”,
“短链接”:“jPE7G”,
“创建时间”:“2016-01-18 05:03:46”,
“路径”:“\/SupportData\/ImpalzB2B\/uploads\/90294930451453118625255.jpg”,
“更新类型”:“4”
}, {
“id”:“20”,
“名称”:“F frfgcgj ggvvhv”,
“说明”:“Vdhsj fgjjchk”,
“短链接”:“hMn8K”,
“创建时间”:“2016-01-18 05:04:16”,
“路径”:“\/SupportData\/ImpalzB2B\/uploads\/90294930451453118654785.jpg”,
“更新类型”:“4”
}, {
“id”:“25”,
“名称”:“Gshsh DJ DJ DKD dkkd”,
“说明”:“Bsjjd djjd djdirj dudir”,
“短链接”:“dhT6l”,
“创建时间”:“2016-01-22 05:39:31”,
“路径”:[
“\/SupportData\/ImpalzB2B\/uploads\/11453466369930.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/11453466369891.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/11453466369942.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/11453466369934.jpg”,
“\/SupportData\/ImpalzB2B\/uploads\/11453466369939.jpg”
],
“更新类型”:“4”
}, {
“id”:“26”,
“姓名”:“健康早餐,前往我们在安德烈的新餐厅”,
"
var path = (item.path && typeof item.path == 'string' ? [item.path] : item.path) || [];
$.each(data, function(i, item) {
    if (item.update_type == '3') {
        var path = (item.path && typeof item.path == 'string' ? [item.path] : item.path) || [];
        console.log(path.length);
    }
});
$.each(data, function(i, item) {
    console.log(item.id);
    var path = (item.path && typeof item.path == 'string' ? [item.path] : item.path) || [];
    $.each(path, function (i, obj) {
        console.log(obj);
    });
});
data.forEach(function (item) {
    if (item.update_type == '3') {
        var path = (item.path && typeof item.path == 'string' ? [item.path] : item.path) || [];
        console.log(path.length);
    }
});
data.forEach(function (item) {
    console.log(item.id);
    var path = (item.path && typeof item.path == 'string' ? [item.path] : item.path) || [];
    path.forEach(function (obj) {
        console.log(obj);
    });
});