原始数据
$arr = [
['黑', '白', '红', '绿'],
['大', '小'],
['A', 'B', 'C', 'D']
];
递归函数
doExchange(val) {
var len = val.length
// 当数组大于等于2个的时候
if (len >= 2) {
// 第一个数组的长度
var len1 = val[0].length
// 第二个数组的长度
var len2 = val[1].length
// 2个数组产生的组合数
var lenBoth = len1 * len2
// 申明一个新数组
var items = new Array(lenBoth)
// 申明新数组的索引
var index = 0
for (var i = 0; i < len1; i++) {
for (var j = 0; j < len2; j++) {
if (val[0][i] instanceof Array) {
items[index] = val[0][i].concat(val[1][j])
} else {
items[index] = [val[0][i]].concat(val[1][j])
}
index++
}
}
var newArr = new Array(len - 1)
for (var i = 2; i < val.length; i++) {
newArr[i - 1] = val[i]
}
newArr[0] = items
return this.doExchange(newArr)
} else {
val[0].forEach((item, index) => {
if (typeof item == 'string') {
val[0][index] = [item]
}
})
return val[0]
}
}
处理多规格函数,自看。省的重写
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、从(排序!)数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移...
- 本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那...