数组相乘,顾名思义就是将多个数组的每一元素乘(组合)起来。它的结果以几何数级增长,初次遇到此类问题时,常常使人头皮发麻,我们现在以js的角度来解决这个问题。
从实例出发
众所周知,女孩出门前一般需要经过精心打扮,那么假设你有一个女朋友,她有着3顶帽子,5件衣服,5条裤子,3双鞋子,2只口红,4个包包,2副墨镜,且心情可能会影响穿着,她可能因为心情不好而选择不带一些物品,但是她会告诉你她会穿戴什么,要求列举所有方案,看到题目后……
不说了,先将实际问题转化成语言问题吧。七个数组,分别表示七种穿戴,数组中存值为该穿戴的代号,传值为字符串是她告诉你她需要的穿着,例"clothes trousers",中间以空格隔开
const hat = ['a','b','c'];
const clothes = ['0','1','2','3','4'];
const trousers = ['q','w','e','r','t'];
const shoes = ['A','B','C'];
const lipstick = ['$1','$2'];
const bag = ['¥1','¥2','¥3','¥4'];
const sunglasses = ['^1','^2'];
function getComb(str){
return arr;
}
复制代码
解决思路
秉着不管什么问题,看到数组我就用循环的思路,去解题,难免会遇上很多问题。如果,题目上明确指出女朋友心情必须max每次出门都装备拉满,那ok没问题,7次循环解决。但是女人心海底针呐,你只能通过她告诉的穿着来列举(如果无论什么情况,你都用7次循环,那当我没说)。