【Javascript】JSON珍逸、Array


JSON 格式的數(shù)據(jù)需要遵循什么規(guī)則?

由來

JSON 格式(JavaScript Object Notation 的縮寫)是一種用于數(shù)據(jù)交換的文本格式撮躁,2001年由 Douglas Crockford 提出把曼,目的是取代繁瑣笨重的 XML 格式嗤军。

規(guī)則

  • 復合類型的值只能是數(shù)組或?qū)ο笮鹱荒苁呛瘮?shù)震叮、正則表達式對象、日期對象苇瓣。
  • 簡單類型的值只有四種:字符串击罪、數(shù)值(必須以十進制表示)媳禁、布爾值和null(不能使用NaN, Infinity,-Infinityundefined
  • 字符串必須使用雙引號表示损话,不能使用單引號丧枪。
  • 對象的鍵名必須放在雙引號里面拧烦。
  • 數(shù)組或?qū)ο笞詈笠粋€成員的后面恋博,不能加逗號债沮。

使用 JSON 對象實現(xiàn)一個簡單的深拷貝函數(shù)(deepCopy)

這里使用JSON.stringify()JSON.parse()來將對象轉(zhuǎn)換成字符串并且還原的方式來實現(xiàn)深拷貝

// 定義數(shù)組
var obj = {
    name: 'NinthG',
    age: 26,
    friends: ['Game', 'Skin', 'Music']
}
// 使用JSON.stringify()和JSON.parse()方法
var "new obj" = JSON.parse(JSON.stringify(obj))
// 改變obj中的name
obj.name = '秦濤'
//測試深拷貝是否成功
console.log(obj)
console.log("new obj")

// 輸出結(jié)果
[object Object] {
  age: 26,
  friends: ["Game", "Skin", "Music"],
  name: "秦濤"
}
[object Object] {
  age: 26,
  friends: ["Game", "Skin", "Music"],
  name: "NinthG"
}

數(shù)組方法理解

  • push疫衩、pop闷煤、shift鲤拿、unshift近顷、joinsplice分別是什么作用家淤?
    • push:在數(shù)組最后添加一個元素絮重, 返回值為添加元素后的數(shù)組長度青伤,改變當前數(shù)組
    • pop:將數(shù)組的最后一個元素拿出來,返回值為拿出來的元素蚪腋,改變當前數(shù)組
    • shift:將數(shù)組第一個元素拿出來屉凯,返回值為拿出元素悠砚,改變當前數(shù)組
    • unshift:在數(shù)組第一位添加一個元素灌旧,返回值為添加元素后的數(shù)組長度枢泰,改變當前數(shù)組
    • join:將數(shù)組中的值用方法內(nèi)的字符串拼接成新的字符串衡蚂,返回拼接的字符串讳窟,不改變當前數(shù)組
    • splice:通常用作.splice(x, y,),表示從下標為x的位置開始丽啡,拿出來y個元素改执,改變當前數(shù)組
  • splice函數(shù)分別實現(xiàn)push辈挂、pop终蒂、shift拇泣、unshift方法
var arr = [1,2,3,4,5]
  • 實現(xiàn)push
arr.splice(arr.length, 0, "a") //因為splice操作是從下標位置之前操作的霉翔,所以不用arr.length - 1
  • 實現(xiàn)pop
arr.splice(arr.length - 1, 1) 
  • 實現(xiàn)shift
arr.splice(0, 1) 
  • 實現(xiàn)unshift
arr.splice(0, 0, 1) 

寫一個函數(shù),操作數(shù)組序芦,數(shù)組中的每一項變?yōu)樵瓉淼钠椒街ゼ樱谠瓟?shù)組上操作

var arr = [1, 2, 3] // 聲明數(shù)組
function squareArr(arr){
  for (i = 0; i < arr.length; i++){
    arr[i] = arr[i]*arr[i]
  }
} // 聲明函數(shù)藏杖,并使用for循環(huán)蝌麸,將平方后的值賦值給當前位置元素
squareArr(arr) // 使用arr數(shù)組執(zhí)行函數(shù)
console.log(arr) //輸出結(jié)果

寫一個函數(shù),操作數(shù)組弟疆,返回一個新數(shù)組,新數(shù)組中只包含正數(shù)

選擇使用.filter方法作為判斷條件
因為蠢柑司,所以用了兩種方法攒驰,并沒有用到其他同學作業(yè)中的parseInt方法

// 方法1 定義新數(shù)組名字
var arr = [3, -1,  2,  '秦濤', true]
function filterPositive(arr){
  return arr.filter(
    function(x){
      return x > 0 && typeof x == "number"
    }
  )
}
var arr2 = filterPositive(arr)
console.log(arr2)
console.log(arr)
// 方法2 不定義隅津,直接console.log
var arr = [3, -1,  2,  '秦濤', true]
console.log(
  arr.filter(
    function(x){
      return x > 0 && typeof x == "number"
}))
console.log(arr)

parseInt方法并不會...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末痹籍,一起剝皮案震驚了整個濱河市蹲缠,隨后出現(xiàn)的幾起案子娜谊,更是在濱河造成了極大的恐慌芭商,老刑警劉巖铛楣,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搏存,居然都是意外死亡,警方通過查閱死者的電腦和手機蛆橡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門葱轩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來垃喊,“玉大人本谜,你說我怎么就攤上這事。” “怎么了赏参?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵嗡呼,是天一觀的道長南窗。 經(jīng)常有香客問我窒悔,道長,這世上最難降的妖魔是什么聋庵? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上臼疫,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好湾盗,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布氛改。 她就那樣靜靜地躺著疆导,像睡著了一般。 火紅的嫁衣襯著肌膚如雪败富。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天摩窃,我揣著相機與錄音兽叮,去河邊找鬼。 笑死,一個胖子當著我的面吹牛鹦聪,可吹牛的內(nèi)容都是我干的账阻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼泽本,長吁一口氣:“原來是場噩夢啊……” “哼宰僧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起观挎,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎段化,沒想到半個月后嘁捷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡显熏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年雄嚣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喘蟆。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡缓升,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蕴轨,到底是詐尸還是另有隱情港谊,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布橙弱,位于F島的核電站歧寺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏棘脐。R本人自食惡果不足惜斜筐,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛀缝。 院中可真熱鬧顷链,春花似錦、人聲如沸屈梁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俘闯。三九已至潭苞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間真朗,已是汗流浹背此疹。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蝗碎。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓湖笨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蹦骑。 傳聞我的和親對象是個殘疾皇子慈省,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容