Johnson Controls Q3
by yash009
JavaScript 1.7
var val = "abcd";
getAllCombos(val);
//input “abcd” should print “”, “a”, “b”, “c”, “d”, “ab”, “ac”, “ad”, “bc”, “bd”, “cd”, “abc”, “abd”, “acd”, “bcd”, “abcd"
function getAllCombos(value) {
var arr = [];
var valueArr = value.split('');
var len = valueArr.length;
for(var i=0;i<valueArr.length;i++){
arr.push(valueArr[i]);
arr.push(valueArr.filter(a => a != valueArr[i]).join(''));
for(var j=0;j<valueArr.length;j++) {
if(valueArr[i]!=valueArr[j]) {
let temp1 = valueArr[i].concat(valueArr[j]).split('').sort().join('');
arr.push(temp1);
let temp2 = valueArr.slice(0,i).join('');
let temp3 = valueArr.slice(j,len).join('');
let temp4 = temp2.concat(temp3);
if(temp4.len<len) {
arr.push(temp4);
}
}
}
}
arr.push(value);
var resultArr = [...new Set(arr)];
console.log(resultArr);
}