<!-- 数组循环的几种方法 -->
<script>
var arr = ['a', 'b', 'c', 'd', 'e'];
//for循环
for (let i = 0; i < arr.length; i++) {
// console.log(arr[i])
}
//for循环优化 ( 使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。这种方法基本上是所有循环遍历方法中性能最高的一种)
for (let i = 0, len = arr.length; i < len; i++) {
// console.log(arr[i])
}
//foreach (数组自带的foreach循环,使用频率较高,实际上性能比普通for循环弱)
arr.forEach(function (value, index, arr) {
// console.log(value === arr[index])
// console.log('-')
})
//map
var arr = ['a', 'b', 'c', 'd', 'e'];
var arr1 = arr.map(function (value, index, arr) {
return value = value + "q";
})
// console.log(arr1)
//for...in
for (j in arr) {
}
//for...of
for (let value of arr) {
};
//forin循环最慢。优化后的普通for循环最快
</script>
<!-- 对象循环的几种方式 -->
<script>
var obj = {
name:'小中',
age:18,
like:'篮球'
}
//for…in 循环
for(let key in obj){
// console.log(key)
// console.log(obj[key])
}
//Object.keys方法遍历 (Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)。)
console.log(Object.keys(obj)) //可枚举的key
//Object.values 获取属性值
console.log(Object.values(obj))
//Object.getOwnPropertyNames(obj) 获取属性
console.log(Object.getOwnPropertyNames(obj)) //所有key
</script>