是否单一出口原则
const headerKeys = ['sdp-app-id', 'sdp-biz-type', 'sdp-org-id', 'Accept-Language'] const alias = { 'sdp-app-id': ['appId', '__app_id'], 'Accept-Language': ['language', 'lang', 'locale', '__lang'] } const headers = {} // 初始化 从 url localStorage window.SDP_APP_DATA cookie 浏览器 中取值 const searchParams = parse(window.location.search) const hashParams = parse(window.location.hash.replace(/^#[^?]+/, '')) const db = JSON.parse(localStorage.getItem('SDP_APP_DATA') || '{}') const global = window.SDP_APP_DATA || {} const dataSources = [searchParams, hashParams, db, global] dataSources.forEach((data) => { headerKeys.forEach((key) => { if (!headers[key]) { if (data[key]) { headers[key] = data[key] } else { const aliasKeys = alias[key] || [] aliasKeys.some((aliasKey) => { const value = data[aliasKey] if (value) { headers[key] = value return true } return false }) } } }) })
headerKeys.forEach((key) => { if (headers[key]) return dataSources.forEach((data) => { if (data[key]) return headers[key] = data[key] if (!alias[key]) return alias[key].forEach((aliasKey) => { const value = data[aliasKey] if (value) { headers[key] = value } }) })})
