问题背景: ==循环时,我们需要得到索引角标的值==
eg:
1、json的循环
var json = { "name": "luo", "sex": "male", "age": 18 }
对json对象的循环,还算简单,直接 for (var i in json){}
。但是,有时候我们需要知道json对象包含哪几项的值,即包含什么信息,也就是数据表中的列项值。其实这一个也很容易得到:
for (var key in json) {
console.log(json[kye]); //得到每项值
console.log(key); //得到得到索引值key
console.log(typeof key); //string
}
回顾一点:json是“键值对”,即:key:value
,这个key
自然是string
。其实json也要求key为字符串,但是实际中,不是字符串,也没问题,但是上述循环中的 key 一定是字符串
2、数组的循环
<1>
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]); //value
console.log(i); //index
console.log(typeof i); //number
}
<2>
for (var key in arr) {
console.log(arr[key]); //value
console.log(key); //index
console.log(typeof key); //string
}
所以for ... in...
循环得到的key
值类型都是string