现有一个函数change,接收两个参数,参数arr为一数组,形如 ["A","T","C","G"] ,该数组元素值只可能为字符串"A","T","C","G"之一,参数count为一int,值小于等于arr的长度。
函数change实现的功能是将数组arr内的count个元素改为除原值以外的ATCG中另外三个,如"A"改为 "T"/"C"/"G" ,然后输出一个新的二维数组outPut,outPut内每个元素都是一个数组,其值为改变后的所有可能性。
如:原数组arr=["A","C"]
,改变个数count=1
,
输出数组
outPut=[
["T","C"],["C","C"],["G","C"],["A","A"],["A","T"],["A","G"]
]
写了如下函数change,写到一半发现循环嵌套层数问题,不知如何继续,求助~~~
function change(arr,count){
for(var i = 0; i < arr.length; i ++){
switch (arr[i]){
case "A":
}
}
}
以下是一种递归实现: