js 对象根据逗号分割为新对象

发布于 2022-09-13 01:05:15 字数 487 浏览 11 评论 0

原数据格式↓

 const final = [{ name: 'test', final: 'id,name'  }, 
                { name: 'data', final: 'type'  }, 
                { name: 'data', final: ''  }]

期待结果↓

  const result = [{ fit: 'test:id' }, 
                  { fit: 'test:name' }, 
                  { fit: 'data:type' }, 
                  { fit: 'data:' }]

fit的值等于name值+冒号+final的值,如果final里的值有逗号,那么就拆分为两个,如果final值为空,照样也带上name值+冒号

在这里先感谢各位大神们的解答,小弟感激不尽!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

风蛊 2022-09-20 01:05:15
const final = [{ final: 'id,name', name: 'test' }, 
                { final: 'type', name: 'data' }, 
                { final: '', name: 'data' }]
final.reduce((acc,{final,name})=>(final.split(',').forEach(key=>{acc.push({fit:name+':'+key})}),acc),[])

结果

0: {fit: "test:id"}
1: {fit: "test:name"}
2: {fit: "data:type"}
3: {fit: "data:"}
爺獨霸怡葒院 2022-09-20 01:05:15
const result = final
    .map(e => e.final.split(',').map(t => ({ fit: `${e.name}:${t}` })))
    .flat();

image.png

清醇 2022-09-20 01:05:15
const result = final.reduce((list, item) => {
        let names = item.final.split(',').map(name => ({fit: `${item.name}:${name}`}))
        list.push(...names)
        return list
}, [])

说实话这种单纯只是遍历的逻辑,真的写不出来的话,下班回家多看看书做做题好吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文