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);
}