原始数据
$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辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 一、从(排序!)数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移...
- 什么是数组? 数组简单来说就是将所有的数据排成一排存放在系统分配的一个内存块上,通过使用特定元素的索引作为数组的下...
- 本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那...