原始数据

const data = [{
id: ,
spec: '规格1',
rules: [{
rank: ,
breaks:
},
{
rank: ,
breaks:
},
{
rank: ,
breaks:
}
]
},
{
id: ,
spec: '规格2',
rules: [{
rank: ,
breaks:
},
{
rank: ,
breaks:
},
{
rank: ,
breaks:
}
]
}
];

使用 forEach 遍历

function skuFormat(data) {
let RankList = [];
data.forEach(item => {
item.rules.forEach(ite => {
if (RankList.indexOf(ite.rank) === -) RankList.push(ite.rank);
})
})
let newData = [];
RankList.forEach(item => {
newData.push({
rank: item,
skus:[]
})
})
newData.forEach(item=>{
data.forEach(ite=>{
let Remark={
id:ite.id,
spec:ite.spec,
breaks:
}
try {
ite.rules.forEach(it=>{
if(item.rank===it.rank){
Remark.breaks=it.breaks;
item.skus.push(Remark);
throw(new Error('find item'));
}
})
} catch (error) {
}
})
})
return newData;
}
let newData= skuFormat(data);
console.log(newData)

使用 reduce 处理

let newData=data.reduce((pre, cur) => {
console.log(cur,pre)
const list = cur.rules.map(item => ({
rank: item.rank,
skus: [{
id: cur.id,
spec: cur.spec,
breaks: item.breaks
}]
}))
if (!pre.length) {
return list;
}
return pre.map((item, key) => {
return {
...item,
skus: [...item.skus, ...list[key].skus]
}
})
}, []);
console.log(newData)

最新文章

  1. Web测试介绍2一 安全测试
  2. django-- Models
  3. BT客户端实现 Peer协议设计
  4. IOS开发之开发者账号遇到的bug
  5. Activity中UI框架基本概念
  6. 错误C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型
  7. dedecms调用子栏目内容,缩略图,以及栏目名字
  8. 读取Config文件工具类 PropertiesConfig.java
  9. 关于判断变量是否为null的顺序问题。
  10. 【JSP 标签】格式化日期
  11. api接口写好了?想过(Accept,Content-Type)?返回类型json|xml?
  12. [LeetCode] Next Closest Time 下一个最近时间点
  13. Spark技术内幕:一个图搞定Spark到底有多少行代码
  14. 关于 IOS 时间的一下用法
  15. KVM 部署 日常操作
  16. Windows 下单机最大TCP连接数
  17. 聊聊 CAS
  18. MVC bundle的使用总结
  19. 【转载】关于Java String, StringBuilder, StringBuffer, Hashtable, HashMap的面试题
  20. 使用华邦的SPI FLASH作为EPCS时固化NIOS II软件报错及解决方案

热门文章

  1. Python 列表和元组 (2) 持续更新
  2. python3正则表达式总结
  3. vector简单使用
  4. C# params object[] args 可以传多个参数,可以不限制类型
  5. input 设置长度限制 去除默认样式
  6. 2018CCPC桂林站JStone Game
  7. Mac下Eclipse(Oxygen)添加Tomcat插件
  8. 两个字说清楚编程语言实质-Python基础前传(3)
  9. layer提示带文字
  10. Django基础之form表单