for in , forEach, for of 如何使用
<script>
let car = {
name: '小红',
age: 27,
count: function () {
age += 1
}
}
let obj_name = 'car'
//封装一个遍历对象的函数,对象作为参数传递进去,for in 适用于遍历对象
function dump_props(obj, obj_name) {
var result = "";
for (var i in obj) {
result += obj_name + "." + i + " = " + obj[i] + "<br>";
}
result += "<hr>";
return result;
}
var result = dump_props(car, obj_name)
console.log(result)
alert(result)
//遍历数组
let arr = [3, 5, 7];
arr.foo = "hello";
//for in 遍历数组得到的是索引和属性名
for (let i in car) {
console.log(i); // logs "0", "1", "2", "foo"
}
//ES5 forEach 遍历数组得到元素的值
arr.forEach(item => {
console.log(item) // logs "3", "5", "7"
})
//ES6 for of 遍历数组得到的是元素的值
for (let i of car) {
console.log(i); // logs "3", "5", "7" // 注意这里没有 hello
}
//for of 遍历不到原型上面的属性
Array.prototype.method = function () {
console.log(this.length);
}
var myArray = [1, 2, 4, 5, 6, 7]
myArray.name = "数组";
for (var value of myArray) {
console.log(value);
}
//for in遍历对象只遍历
Object.prototype.method = function () {
console.log(this);
}
var myObject = {
a: 1,
b: 2,
c: 3
}
for (var key in myObject) {
if(myObject.hasOwnProperty(key)) {
console.log(key);
}
}
var tabList = [
{text: '综合', ischeck: true, status: ''},
{text: '最新', ischeck: false, status: '1'},
{text: '价格', ischeck: false, status: '2'},
{text: '销量', ischeck: false, status: '3'},
]
var index = 1
tabList.forEach(function(item,index){
console.log(index + ':' + item.ischeck)
item.ischeck = false
})
tabList[index].ischeck = true
console.log(tabList)
for(var item of tabList ){
console.log(item)
item.ischeck = false
}
tabList[index].ischeck = true
console.log(tabList)
</script>