forObject
遍历对象自身可枚举字符串属性
引入版本
0.50.0
Demo
ts
import { forObject } from '@wyfex/iutils'
console.log('===== 测试1:正常全部遍历 =====')
const data1 = { a: 1, b: 2, c: 3 }
forObject(data1, (val, key) => {
console.log(key, val)
})
console.log('\n===== 测试2:遍历中途返回false,中断循环 =====')
const data2 = { x: 10, y: 20, z: 30 }
forObject(data2, (val, key) => {
console.log(key, val)
if (key === 'y') {
return false
}
})
// 预期输出 x、y,不会输出 z
console.log('\n===== 测试3:传入null,直接返回不执行回调 =====')
forObject(null, () => {
console.log('这条日志不应该打印')
})
console.log('\n===== 测试4:空对象,回调不执行 =====')
forObject({}, () => {
console.log('不会执行')
})
console.log('\n===== 测试5:验证Symbol属性不会被遍历 =====')
const symKey = Symbol('secret')
const data5 = { foo: 111, [symKey]: 222 }
forObject(data5, (val, key) => {
console.log('遍历key:', key) // 只会打印 foo
})
console.log('\n===== 测试6:回调返回true/undefined,不会中断 =====')
const data6 = { m: 1, n: 2, p: 3 }
forObject(data6, val => {
console.log(val)
return true
})