在js里面方便的遍历一个对象(含数组),数组遍历是有forEach,但是它没有break操作,它会一定遍历完整个数组。我自己写个foreach函数,可以遍历数组和对象:
function foreach(obj, callback) { if (typeof obj !== 'object') { return } if (Array.isArray(obj)) { for (let i = 0, len = obj.length; i < len; i ++) { let value = obj[i] let state = callback(i, value, obj) if (state === false) { break } } } else { let keys = Object.keys(obj) for (let i = 0, len = keys.length; i < len; i ++) { let key = keys[i] let value = obj[key] let state = callback(key, value, obj) if (state === false) { break } } } }
使用的时候:
foreach(obj, (key, value) => { ... return false })
callback中返回false,就表示break,返回true,表示continue,不返回任何值表示正常遍历。
2017-10-10 2453