1 回答
TA贡献2036条经验 获得超8个赞
试了一下仿“纯函数式”的代码:
两两相配(这是答主想要的效果):
function transform(list) {
return list.map(i =>
i.value
.split(',')
.map(j => `${i.id}:${j}`)
).reduce((acc, current, i, arr) => {
current.forEach(L => {
arr
.filter((_, k) => k > i)
.forEach(j => {
j.forEach(R => {
acc.push(`${L},${R}`)
})
})
})
return acc
}, [])
}
另外,附加上NN相配(笛卡儿积):
function transform(list) {
return list.map(i =>
i.value
.split(',')
.map(j => `${i.id}:${j}`)
).reduce((l, r) => (
l.length === 0 ?
r :
l.map(g =>
r.map(j =>
`${g},${j}`
)
)
.reduce((l, r) =>
l.concat(r), []
)
), [])
}
添加回答
举报