天天看點

JSON 數組——通路數組值-周遊數組-JSON 對象中的嵌套數組-修改數組值-删除數組項目

JSON 數組——通路數組值-周遊數組-JSON 對象中的嵌套數組-修改數組值-删除數組項目

作為 JSON 對象的數組

執行個體

JSON 中的數組幾乎與 JavaScript 中的數組相同。

在 JSON 中,數組值的類型必須屬于字元串、數字、對象、數組、布爾或 null。

在 JavaScript 中,數組值可以是以上所有類型,外加任何其他有效的 JavaScript 表達式,包括函數、日期和 undefined。

1、JSON 對象中的數組

數組可以是對象屬性的值:

執行個體
{
"name":"Bill Gates",
"age":62,
"cars":[ "Porsche", "BMW", "Volvo" ]
}
           

2、通路數組值

您可以通過使用索引号來通路數組值:

執行個體
var myObj, x;
myObj = {
  "name":"Bill Gates",
  "age":62,
  "cars":[ "Porsche", "BMW", "Volvo" ]
};
x = myObj.cars[0];  
console.log(x)   //  "Porsche"
           

3、周遊數組

您可以通過使用 for-in 循環來通路數組值:

執行個體
var myObj, i, x = "";
myObj = {
  "name":"Bill Gates",
  "age":62,
  "cars":[ "Porsche", "BMW", "Volvo" ]
};

for (i in myObj.cars) {
  x += myObj.cars[i];
}
console.log(x)   //  "PorscheBMWVolvo"
           

或者您可以使用 for 循環:

執行個體
var myObj, i, x = "";
myObj = {
  "name":"Bill Gates",
  "age":62,
  "cars":[ "Porsche", "BMW", "Volvo" ]
};

for (i = 0; i < myObj.cars.length; i++) {
  x += myObj.cars[i];
}
console.log(x)   //  "PorscheBMWVolvo"
           

4、JSON 對象中的嵌套數組

數組中的值也可以另一個數組,或者甚至另一個 JSON 對象:

執行個體
myObj =  {
   "name":"Bill Gates",
   "age":62,
   "cars": [
	  { "name":"Porsche",  "models":[ "911", "Taycan" ] },
	  { "name":"BMW", "models":[ "M5", "M3", "X5" ] },
	  { "name":"Volvo", "models":[ "XC60", "V60" ] }
   ]
}
           

如需通路數組内部的數組,請對每個數組使用 for-in 循環:

執行個體
var myObj, i, j, x = "";
myObj = {
  "name":"Bill Gates",
  "age":62,
  "cars": [
    {"name":"Porsche", "models":["911", "Taycan"]},
    {"name":"BMW", "models":["M5", "M3", "X5"]},
    {"name":"Volvo", "models":["XC90", "V60"] }
  ]
}
for (i in myObj.cars) {
  x += myObj.cars[i].name;
  for (j in myObj.cars[i].models) {
    x += myObj.cars[i].models[j] ;
  }
}
console.log(x)   // "Porsche911TaycanBMWM5M3X5VolvoXC90V60"
           

5、修改數組值

請使用索引号來修改數組:

執行個體
var myObj, i, x = "";
myObj = {
  "name":"Bill Gates",
  "age":62,
  "cars": ["Porsche","BMW","Volvo"]
}
myObj.cars[2] = "Mercedes Benz";

for (i in myObj.cars) {
  x += myObj.cars[i];
}
console.log(x)   // "PorscheBMWMercedes Benz"
           

6、删除數組項目

請使用 delete 關鍵詞來删除數組中的項目:

執行個體
var myObj, i, x = "";
myObj = {
  "name":"Bill Gates",
  "age":62,
  "cars": ["Porsche","BMW","Volvo"]
}
delete myObj.cars[2];

for (i in myObj.cars) {
  x += myObj.cars[i];
}
console.log(x)   //  "PorscheBMW"
           

繼續閱讀