JS for in 循环中的key ,value 详解。

JavaScript040

JS for in 循环中的key ,value 详解。,第1张

<input type="radio" value="radio" id="radio"/>

<script>

function fn(){

   this.aa = "obj1"

   this.bb = "obj2"

}

var json = {"aa":"json1","bb":"json2"}

var obj = new fn()

var radio = document.getElementById("radio")

console.log("-------------json----------------")

for(var key in json){

   console.log(key+"--"+json[key])

}

console.log("-------------new obj----------------")

for(key in obj){

   console.log(key+"--"+obj[key])

}

console.log("-------------document----------------")

for(key in radio){

   console.log(key+"--"+radio[key])

}

</script>

从上面例子中可以看出:

1、 for in 可以遍历自己定义的json对象 ,和自己new的函数对象。

2、for in 不能遍历页面节点对象,但是把radio换成遍历document不会报错。

3、不建议用for in来遍历节点对象,因为不是所有节点对象属性都支持in运算符的访问。

var obj = {"id": 1, "name":"张三"}

for(var key in obj)

{

alert("Key是:" + key)

alert("对应的值是:" + obj[key])

}

Js遍历json对象所有key及根据动态key获取值:

Js代码

<script type="text/javascript">

getJson('age')

function getJson(key){

var jsonObj={"name":"傅红雪","age":"24","profession":"刺客"}

//1、使用eval方法    

var eValue=eval('jsonObj.'+key)

alert(eValue)

//2、遍历Json串获取其属性

for(var item in jsonObj){

if(item==key){  //item 表示Json串中的属性,如'name'

var jValue=jsonObj[item]//key所对应的value

alert(jValue)

}

}

//3、直接获取

alert(jsonObj[''+key+''])

}

</script>

通过上边三种方法就可以取到json中key对应的值。