处理多规格函数,自看。省的重写

原始数据
$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]
}
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容