①数组的遍历:
this.types = ['单选题', '多选题', '判断题']
const len = this.types.length
for (let i = 0; i < len; i++) {
console.log('index:', i, 'value:', this.types[i]) // i为number类型
}
// eslint-disable-next-line prefer-const
for (let index in this.types) {
console.log('index:', index, 'value:', this.types[index]) // index为string类型
}
// eslint-disable-next-line prefer-const
for (let item of this.types) { // ES6新增
console.log('item:', item)
}
// for...of 是 ES6 新引入的循环,用于替代 for..in 和 forEach() ,并且支持新的迭代协议。它可用于迭代常规的数据类型,如 Array 、 String 、 Map 和 Set 等等。
②对象的遍历:
this.types = {
'单选题': '1',
'多选题': '2',
'判断题': '3'
}
for (const key in this.types) {
console.log('key:', key, 'value:', this.types[key])
}
for (const key of Object.keys(this.types)) {
console.log('key:', key, 'value:', this.types[key])
}
for (const value of Object.values(this.types)) {
console.log('value:', value)
}
for (const [key, value] of Object.entries(this.types)) {
console.log(key + ':' + value)
}
console.log('Object.keys:', Object.keys(this.types)) // 由对象中所有属性的key组成的数组
console.log('Object.values:', Object.values(this.types)) // 由对象中所有属性的value组成的数组
console.log('Object.entries:', Object.entries(this.types)) // 由对象中所有属性的key和value组成的数组