原格式↓
const data = [['香蕉:123', '黄瓜:123'], ['梨子:321']]
理想格式↓
const data1 = [{ name: '香蕉', id: '123' },
{ name: '黄瓜', id: '123' },
{ name: '梨子', id: '321' }]
如上所示,用冒号为分割符号,左边为name,右边为id
请教各位大神该如何操作,小弟在这里先谢谢各位大神的解答了,感激不尽!
原格式↓
const data = [['香蕉:123', '黄瓜:123'], ['梨子:321']]
理想格式↓
const data1 = [{ name: '香蕉', id: '123' },
{ name: '黄瓜', id: '123' },
{ name: '梨子', id: '321' }]
如上所示,用冒号为分割符号,左边为name,右边为id
请教各位大神该如何操作,小弟在这里先谢谢各位大神的解答了,感激不尽!
expanedArr (arr) {
// 将二维数组展开成一维数据
const flat = arr.reduce((prev, next) => {
return prev.concat(next)// 循环将数组进行拼接
})
// console.log(flat)
return flat
},
const data = [['香蕉:123', '黄瓜:123'], ['梨子:321']]
// 先将二维数组展开成一维数据
const arr = this.expanedArr(data)
// 得到['香蕉:123', '黄瓜:123','梨子:321']
// 然后再把arr的每个值用冒号分割就行了
const res = arr.map(item => {
const its = item.split(':')
return {
name: its[0],
id: its[1]
}
})
console.log(res)
[['香蕉:123', '黄瓜:123'], ['梨子:321']].flat(Infinity).map(v => {
const tmp = v.split(":")
return {
name: tmp.shift(),
id: tmp.shift(),
}
})
// => [{"name":"香蕉","id":"123"},{"name":"黄瓜","id":"123"},{"name":"梨子","id":"321"}]
const data1 = demo([['香蕉:123', '黄瓜:123'], ['梨子:321']])
function demo (list) {
let res = []; list.forEach(item => item.forEach(names => {
const [name, id] = names.split(':')
res.push({ name, id })
}))
return res;
}
看到楼上大佬成群,只好杀一对大括号了。
[ ['香蕉:123', '黄瓜:123'], ['梨子:321'] ].flat(Infinity).map(s => Object.fromEntries(s.split(':').map((v, k) => [ [ "name", "id" ][k], v ])))
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决