javascript - 標準數組push一個對象,為什麼會變成一個類別數組
阿神
阿神 2017-05-19 10:13:30
0
6
1056

在陣列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,其實是一模一樣的。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板