问题:const aaa = ['1111(哈哈)','222(嘿嘿)'] ==> [{phone: '1111', name: '哈哈'},{phone: '222', name: '嘿嘿'}]
思路:1. 提取出数字 2. 得到括号内的内容 3. 组合
1 .提取数组方法
getN(s){
return s.replace(/[^0-9]/ig,'')
},
2. 得到括号内的内容
getZ(s) {
return s.substring(s.indexOf('(')+1,s.indexOf(')'))
}
3. 组合
const aaa = ['1111(哈哈)','222(嘿嘿)']
const bbb={}
const ccc =[]
aaa.map(v=>{
bbb.phone = this.getN(v)
bbb.name = this.getZ(v)
ccc.push(JSON.parse(JSON.stringify(bbb)))
});
console.log(ccc,'bbbb')
注意点: 在利用map循环的的时候,造bbb这个对象时下一个bbb会覆盖上一个bbb,所以需要利用JSON.parse(JSON.stringify()转一下 ,保证对象的唯一性,在往ccc中push