javascript - 标准数组push一个对象,为什么会变成一个类数组
阿神
阿神 2017-05-19 10:13:30
0
6
1085

在数组push一个对象的时候,原则上是像我下图标记的一样json对象

但打印出来的就变味了,变成了一个类数组。请问是什么原因。有什么办法能解决这个问题。让它成为一个json

阿神
阿神

闭关修行中......

全部回复(6)
左手右手慢动作

再使用JSON.stringify()转一下

巴扎黑

想要打印出来是JSON形式,那么请直接转换为JSON字符串打印。

var arr = [{a: 1}, {a: 2}];
console.log(JSON.stringify(arr));
刘奇

json的定义json

Peter_Zhu

这不是类数组 这是数组元素为 对象 的数组。

arr[0] 指的是 { a: 0 }

至于显示的是 Object 字眼 指代的是 类型

刘奇

这个没有问题的,你数组里面放了3个对象,难得这个数组不应该是[对象1,对象2,对象3]吗?

这还是一个标准的数组,至于类数组的概念,请百度。

你想要的[{a:0},{a:1},{a:2}]只是我们使用字面量形式创建数据和对象时的写法而已,这不代表他的展现形式。

由于我们字面量形式的写法和json的格式相似,所以可以将其转化为json字符串的形式来查看,这就是你想要的格式。

console.log(JSON.stringify(arr,null,4));
// 第一个参数为你要格式化为字符串的对象,数组也是对象。
// 第二个格式化的处理函数规则
// 第三个格式化是使用多少个空白来美化
// 后两个参数可以省略,就是楼上的形式
// [
//     {
//         "a": 0
//     },
//     {
//         "a": 1
//     },
//     {
//         "a": 2
//     }
// ]

刚看了你给别人的回复,看来你是没明白json和js对象的区别了。
我之前写过一篇文章JavaScript对象和JSON 供你参考。

阿神

控制台打印出来的跟你写的json是不一样的,你看看直接打印你希望得到的json,和push得到的json,其实是一模一样的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板