JavaScript代码实现
/**
* 组合多个数组
* @param {...Array} arrays
* @returns
*/
function combine(...arrays) {
let list = [];
let helper = function (index, prev) {
// 当前数组
let array = arrays[index];
// 是否为最后一个数组
let is_last = arrays.length - 1 == index;
for (let item of array) {
let current = prev.concat(item);
if (is_last) {
list.push(current);
} else {
helper(index + 1, current);
}
}
};
helper(0, []);
return list;
}
let names = ['iPhone X', 'iPhone XS'];
let colors = ['黑色', '白色'];
let storages = ['64g', '256g'];
console.log(combine(names, colors, storages));
输出
[
[ 'iPhone X', '黑色', '64g' ],
[ 'iPhone X', '黑色', '256g' ],
[ 'iPhone X', '白色', '64g' ],
[ 'iPhone X', '白色', '256g' ],
[ 'iPhone XS', '黑色', '64g' ],
[ 'iPhone XS', '黑色', '256g' ],
[ 'iPhone XS', '白色', '64g' ],
[ 'iPhone XS', '白色', '256g' ]
]
PHP实现版
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?