let result = {
splitSymbol: ''
}
freeCombination([1,2,3,4], result);
function freeCombination(arr, result, before, next) {
var objectResult = false
var splitSymbol = '-'
if (Object.prototype.toString.call(result) === '[object Object]') {
splitSymbol = result.splitSymbol !== undefined ? result.splitSymbol : '-'
if (result.list == undefined) {
result.list = []
}
objectResult = true
}
if (next) {
before += `${next}${splitSymbol}`
}
if (!before) {
before = ''
}
if (!result) {
result = []
}
arr.forEach((item, index) => {
if (arr.length > 1) {
let children = JSON.parse(JSON.stringify(arr));
children.splice(index, 1)
freeCombination(children, result, before, item)
} else {
objectResult ? result.list.push(before += `${item}${splitSymbol}`) : result.push(before += `${item}${splitSymbol}`)
}
})
}
console.log(result)
let suitList = [[['A_1_1','A_1_2'],"A_2","A_3","A_4","A_5"],[['B_1_1','B_1_2'],"B_2","B_3","B_4","B_5","B_6"], ["C_1","C_2","C_3","C_4","C_5"]];
let result = [];
suitName(suitList,{
result: []
})
function suitName(arr) {
let brr = []
arr.forEach((item, index) => {
if (typeof item === 'string') {
if (result) {
result.forEach(a => {
brr.push(`${a},${item}`)
})
} else {
brr.push(`${item}`)
}
if (index === arr.length - 1) {
result = brr;
}
} else {
if (result && !result.length) {
result = arr[index - 1]
}
suitName(item)
}
})
}
console.log(JSON.stringify(result))