99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學院 頭像
蘋果6袋
6
麥子學院

兩個JSON.stringify的參數(shù)

發(fā)布時間:2016-07-25 14:15  回復:0  查看:2798   最后回復:2016-07-25 14:15  

關于JSON.stringify函數(shù),應該都知道其最初的含義,JSON.stringify(obj)把對象轉化為JSON字符串,當然,在低版本瀏覽器中需要引入JSON2.js插件才能正常使用。但是,JSON.stringify僅僅就這一個用處么?顯然不止。它還有第二個、第三個參數(shù)。了解這三個用處將對學習JSON  大有用處。

 

第二個參數(shù)

JSON.stringify的第二個參數(shù)可以是一個數(shù)組,也可以是一個function。

數(shù)組

對象或者說JSON字符串都可以看成是由多個key-value鍵值對組成,而第二個參數(shù)為數(shù)組的時候過濾掉所有key不在數(shù)組中的鍵值對。例如:

兩個JSON.stringify的參數(shù)

兩個JSON.stringify的參數(shù)

可以看到,鍵名不為a或者b的全部被過濾掉了。OK,例子看懂了,那這特性有什么用呢?

經(jīng)常我們會有這種需求,對于下面數(shù)組,不顯示其年齡(age)屬性。


兩個JSON.stringify的參數(shù)


一般或許會采用循環(huán)排出,或者數(shù)組的map等遍歷從新生成,但是有JSON.stringify就簡單多了。先轉成JSON字符串同時過濾掉age,再還原成數(shù)組對象。


兩個JSON.stringify的參數(shù)

兩個JSON.stringify的參數(shù)

OK,簡簡單單一句話,搞定。

function

當然,第二個參數(shù)也可以是一個Function,其有兩個參數(shù),當前遍歷的key和value,如果沒有返回值則過濾掉當前key值①,否則當前遍歷的key值對應的value值為返回值②。

如上屏蔽age一例,如果用function的方式則可以這樣寫:


兩個JSON.stringify的參數(shù)

可以看到結果和上面一樣,當然,這里只是JSON字符串,需要再次parse轉化為對象形式。當然這里只用到function的第①點,還有另一個作用,改變其value值。如上同一個users對象,我們需要把sex的0和1分別改變成男和女。


兩個JSON.stringify的參數(shù)

兩個JSON.stringify的參數(shù)

第三個參數(shù)


第三個參數(shù)主要作為一個格式化參數(shù)。如下對象:


兩個JSON.stringify的參數(shù)

假如我們用alert調(diào)試,會發(fā)現(xiàn)alert(test);為一個'[object Object]’根本看不到值。但是我們用alert(JSON.stringify(test));,可以看到其值但是完全沒有格式,第三個參數(shù)就是這里的格式化補齊的符號。

如果是數(shù)字則表示縮進量:


兩個JSON.stringify的參數(shù)

如果是字符則表示填充字符,當然同樣會以第一層 1個,第二層2個。。。依次填充:


兩個JSON.stringify的參數(shù)

可以看到,第二層的對象是填充的兩個*,So,我們同樣可以通過填充\t來進行代碼縮進,當然,數(shù)字寫上去速度快多了。

 

原文來自:代碼山

您還未登錄,請先登錄

熱門帖子

最新帖子

?