javascript - Wenn ein Standard-Array ein Objekt verschiebt, warum wird es dann zu einem Array-ähnlichen Objekt?
阿神
阿神 2017-05-19 10:13:30
0
6
1055

Wenn ein Objekt in das Array geschoben wird, handelt es sich im Prinzip um dasselbe JSON-Objekt, das ich im Bild unten markiert habe.

Aber das, was ausgedruckt wird, ändert sich und wird zu einem Array-ähnlichen Objekt. Darf ich fragen, was der Grund ist? Gibt es eine Möglichkeit, dieses Problem zu lösen? Machen Sie es zu einem JSON

阿神
阿神

闭关修行中......

Antworte allen(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,其实是一模一样的。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage