利用JSON的特性可以对undefined等排除,拿到干净的数据
例子
// 根据用户的样式转换成动态style
function outSideStyle() {
// 定义样式
let defineStyle = 'width: 60%; display: flex; flex-wrap: wrap;'
// 最后返回的样式对象
let styleObj = {}
// 分割得到数组
// [ 'width: 60%', ' display: flex', ' flex-wrap: wrap', '' ]
defineStyle.split(';').forEach(item => {
styleObj[item.split(':')[0].trim()] =
item.split(':')[1] ? item.split(':')[1].trim() : undefined
// 但赋值的时候可能会出现空格,例如分割后的数组最后一个是空格,
// 此时判断是否有值再去trim不然报错
// 未trim
// { width: ' 60%', ' display': ' flex', ' flex-wrap': ' wrap', '': undefined }
// trim后
// { width: '60%', display: 'flex', 'flex-wrap': 'wrap', '': undefined }
})
// 利用JSON的缺点(特性)排除 undefined 或空值
return JSON.parse(JSON.stringify(styleObj))
// { width: '60%', display: 'flex', 'flex-wrap': 'wrap' }
}