数组里面都是json格式的对象,使用length无法准确获取长度,怎么解决?

var data = ['ab', 'c'];

function handleData ( arg ){
    var data = arg;
    console.log(data.length);
}

数组里面是字符串没问题,但是换成json对象,就无法正确获取长度

var data01 =[{"mid":1,"name":"我的世界里","content":"你的家","pubtime":"2018-10-21T17:32:57.000Z","examine":0},{"mid":2,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T17:33:52.000Z","examine":0},{"mid":3,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T17:34:57.000Z","examine":0},{"mid":4,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T17:35:50.000Z","examine":0},{"mid":5,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T18:00:04.000Z","examine":0},{"mid":6,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T18:03:37.000Z","examine":0},{"mid":7,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T18:03:50.000Z","examine":0},{"mid":8,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T18:05:12.000Z","examine":0},{"mid":9,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T18:05:16.000Z","examine":0},{"mid":10,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T18:05:50.000Z","examine":0},{"mid":11,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T18:06:18.000Z","examine":0},{"mid":12,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T18:17:37.000Z","examine":0},{"mid":13,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T18:45:13.000Z","examine":0},{"mid":14,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T18:45:18.000Z","examine":0},{"mid":15,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T18:45:26.000Z","examine":0},{"mid":16,"name":"填空王力宏","content":"招聘求职信息","pubtime":"2018-10-21T18:45:41.000Z","examine":0}]


function handleData ( arg ){
    var data = arg;
    console.log(data.length);
}

输出结果是

data.length = 1493

但是我想要的结果是16

什么原因造成的

阅读 3.4k
3 个回答

知道原因了

我用ajax获取数据后,这个数据的类型是string,所以会让长度变成1493

if ( typeof(data) === 'string' ) {
            data = eval('(' + data + ')');
            //console.log(data.length);
            document.getElementsByClassName('floor')[0].value= data.length + "楼";
        }

把字符串转换成数组就能正确获取到了

Object.keys(data01).length

也可以试一下JSON.parse(data),使用起来会更方便一些

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题