我看到其他人提到一个问题,还有下边的答案,感觉非常有兴趣,就把题目改编了题目来源及自己的思路题目原本是这样的,`var wordList = [[{'热烈'}, {'万分'}, {'非常'}, ''],
[{'欢迎'}, {'感谢'}, {'谢谢'}],
[{'您'}, {'亲'}, {'老板'}, {'大神'}, ''],
[{'光临'}, {'惠顾'}, {'支持'}],
[{'小店'}, {'本店'}, {'火女菜馆'}]];`如何把这个全都组合起来呢,相同行的不能组成一个,比如:热烈 感谢 老板 支持 小店(每行取一个)这是正确的。但是热烈 万分 谢谢 大神 支持,这样是错误的每次要提取的数量m,是不一定的,比如m=5,就是热烈 感谢 老板 支持 小店m=4,就是 热烈 感谢 老板 支持热烈 感谢 老板 小店
热烈 老板 支持 小店
感谢 老板 支持 小店
这样的,当然还有很多种,都没有一一列出来,这种计算应该如何达成呢?
组成的应该是这样的:[{'热烈'},{'感谢'},{'老板'},{'支持'},{'小店'}]
2 回答
Qyouu
TA贡献1786条经验 获得超11个赞
let wordList = [ ['热烈', '万分', '非常'], ['欢迎', '感谢', '谢谢'], ['您', '亲', '老板', '大神'], ['光临', '惠顾', '支持'], ['小店', '本店', '火女菜馆'] ]; let M = 4; /** @example cross([[1]], [2,3]) // [[1,2], [1,3]] */ let cross = (a1, a2) => a1.reduce((r, s1) => r.concat(a2.map(s2 => [...s1, s2])), []); //还可以这么写 //let cross = (a1, a2) => [].concat(...a1.map(s1 => a2.map(s2 => [...s1, s2]))); let result = wordList.slice(0, M).reduce(cross, [[]]);
莫回无
TA贡献1865条经验 获得超7个赞
改成这样该如何做:
let wordList=[ {"name":"热烈","id":1},{"name":"万分","id":2},{"name":"非常","id":3}, {"name":"欢迎","id":1},{"name":"感谢","id":2},{"name":"谢谢","id":3}, {"name":"您","id":2},{"name":"亲","id":1},{"name":"大神","id"1} ]
id相同的不能组合为一组,共有多少种组合的方式,同样M是不确定的,从这些组种选择M个想组合,该如何代码
- 2 回答
- 0 关注
- 319 浏览
添加回答
举报
0/150
提交
取消