js数组对象的封装转换

js数组对象的封装转换问题:

let arr = ["heart-8","clubs-3"]

想转换成这种数据格式:

let newArr = [{type:"heart",text:"8"},{type:"clubs",text:"3"}]

我的写法是:
let card_item = {}; 
for(let i=0;i<arr.length;i++){
    card_item.type = arr[i].split('-')[0];
    card_item.text= arr[i].split('-')[1];
}

到最后得到的都是最后一个obj,怎么写成多个obj呢?
阅读 3.1k
2 个回答
let ret = arr.map(e => ({type: e.split('-')[0], text: e.split('-')[1]}))

回答题主另一个问题

input: [["hearts-A","clubs-A"],["hearts-K","clubs-K"]]
output: [
  [{type:"hearts",text:"A"},{type:"clubs",text:"A"}],
  [{type:"hearts",text:"K"},{type:"clubs",text:"K"}],
]
let ret = arr.map(e => e.map(f => ({type: f.split('-')[0], text: f.split('-')[1]})))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题