javascript - 一个JS的算法,求大神解答
本文介绍了javascript - 一个JS的算法,求大神解答的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
有如下一个数组
[
{"id": 100006, "value": "40,1666"},
{"id": 100017, "value": "112,113"},
]
期望输出如下结果
['10006:40,100017:112',
'10006:40,100017:113',
'10006:1666,100017:112',
'10006:1666,100017:113',
]
亦或者输入三个或者N个数组
[
{"id": 100006, "value": "40,1666"},
{"id": 100017, "value": "112,113"},
{"id": 100018, "value": "1,2"},
]
能够输出
['10006:40,100017:112',
'10006:40,100017:113',
'10006:40,100018:1',
'10006:40,100018:2',
'10006:1666,100017:112',
'10006:1666,100017:113',
'10006:1666,100018:1',
'10006:1666,100018:2',
'100017:112,100018:1',
'100017:112,100018:2',
'100017:113,100018:1',
'100017:113,100018:2',
]
请问怎么实现这个函数?
附加:最好不论输入数组长度都能正确的输出相应的值(是所有数组的里的值都会被匹配一次),有些答案是固定取值0,1的,期望不要这样。
解决方案
[
{ 'id': 100006, 'value': '40,1666' },
{ 'id': 100017, 'value': '112,113' },
{ 'id': 100018, 'value': '1,2' }
]
.map(v => v.value.split(',').map(n => `${v.id}:${n}`))
.forEach((v, i, arr) => {
v.forEach(vx => {
arr.filter((_, j) => j > i).forEach(g => g.forEach(gx => console.log(vx, gx)));
})
});
这篇关于javascript - 一个JS的算法,求大神解答的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文