JS基础:JSON和它的for in遍历

  • json

一、对比数组与json写法

【案例】

如果数组:
var arrUrl=['img/1.png','img/2.png','img/3.png','img/4.png'];
var arrText=['宠物','图片二','图片三','面具'];
用json写:
var imgData ={
 utl:['img/1.png','img/2.png','img/3.png','img/4.png'],
 text:['宠物','图片二','图片三','面具'];
};
alert(imgData.url[2])//img/3.png

二、json写法中的''和.和[]

【案例】

var json2={name:'miaov'};
var json2={'name':'miaov'};
//都正确,只是下面name加了引号''后更为安全稳定

都正确,只是name加了引号后更为安全稳定

alert(json2.name);
alert(jason2['name'];
//上面的两种读取写法:.或者[]也都是正确的

写法:.或者[]也都是正确的

json2.name='abc';
json2['name']='ABC';
 //上面的两种改写方法也都正确

三、Jason可以包含数字,字符串,数组等;数组也可以包字符串

【案例】:

var json2={abc:123,xyz:''}
////{[],[],[]}   [{},{},{}]json可以包含数组,数组也可以包含json
var arr=[{'name':'TM','age':23},{'name':'leo','age':32}];
alert(arr[0].name+'今年有'+arr[1]['age']);
  • for in遍历

一、遍历与获取验证

【案例】

var json4 ={'name':'miaov','age':3,'fun':'前端开发'};
for(var attr in json4){

alert(attr);//name,age,fun
alert(json4[attr]);//miaov,3,前端开发
alert(json4['attr']);//undefined 加了引号是去找是否有attr属性
}

【注意】:alert(json4[attr])与alert(json4['attr'])不同

二、有数组时,for in与for的嵌套

【案例】

var json5={
 'url':['img/1.png','img/2.png','img/3.png','img/4.png'],
 'text':['宠物','图片二','图片三','面具'];
};
for(var attr in json5){
 for(var i=0;i<json5[attr].length;i++){
   alert(json5[attr][i]);//img1.png,img/2.png,...面具
 }
}

这说明for in循环可以嵌套for

var arr={[],[],[]}

反过来for循环也可以嵌套for in

var arr=[{},{},{}]

三、for in遍历对象属性

window下面有多少属性,及属性名对应的值:

<script>
var str="";
var num =0;
for(var attr in window){
  str +=num+ '.'+ attr + ':'+window[attr]+'<br/>';
  num++;
}
document.body.innerHTML=str;
</script>

四、json中可以用for吗?(不可以)数组可以用for in 吗?(可以)

var json={
 'url':['img/1.png','img/2.png','img/3.png','img/4.png'],
 'text':['宠物','图片二','图片三','面具'];
};
alert(json.length);//undefined说明json没有长度length概念
 for(var i=0;i<json.length;i++){

}
//上面都测试了json没有长度length概念,所以json不用for


var arr=['a','b','c'];
for(var i in attr){
 alert(i);//0,1,2
 alert(arr[i]);//a,b,c
所以for in可以用于数组
}

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 131,858评论 18 138
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 167,518评论 24 707
  • 和明姑娘通电话,明姑娘问:“你还记得那次我们一起偷无花果吗?” 我说当然记得啊,那次吃到的无花果是最好吃的无花果。...
    馮小琦嗯阅读 767评论 0 1
  • 他继续翻看着这本书,当他看到第七十页的时候,发现少了一部分,他重新打开那份文件,自己当初的一时失误造成了这个后果,...
    小丑说她很快乐阅读 130评论 0 0
  • 衡量一部奇幻剧集是否优秀的标准之一,就是它的粉丝们能否在其世界观的框架内衍生出新的理论。而对于美剧《权力的游戏》来...
    wit小学生阅读 4,151评论 3 9