![](/img/trans.png)
[英]I made a mistake in a simple JS program, but I don't know why it's wrong
[英]Javascript program has something wrong ,I don't know why the length of log is not 10?
Javascript程序有问题,不知道为什么log的长度不是10? 输入 s :
const s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT" var findRepeatedDnaSequences = function(s) { var set = new Set() var seqSet = new Set() for (let i = 0; i < s.length - 11; i++) { let sub = s.substr(i, i + 10) console.log(sub) if (set.has(sub)) { seqSet.add(sub) } else { set.add(sub) } } return Array.from(set) }; findRepeatedDnaSequences(s)
控制台结果:Javascript程序有问题,不知道为什么log的长度不是10?
AAAAACCCCC
AAAACCCCCAA
AAACCCCCAAAA
AACCCCCAAAAAC
ACCCCCAAAAACCC
CCCCCAAAAACCCCC
CCCCAAAAACCCCCCA
CCCAAAAACCCCCCAAA
CCAAAAACCCCCCAAAAA
CAAAAACCCCCCAAAAAGG
AAAAACCCCCCAAAAAGGGT
AAAACCCCCCAAAAAGGGTTT
AAACCCCCCAAAAAGGGTTT
AACCCCCCAAAAAGGGTTT
ACCCCCCAAAAAGGGTTT
CCCCCCAAAAAGGGTTT
CCCCCAAAAAGGGTTT
CCCCAAAAAGGGTTT
CCCAAAAAGGGTTT
CCAAAAAGGGTTT
CAAAAAGGGTTT
substr
需要一个起始偏移量和一个长度。 您应该只调用.substr(i, 10)
。
您提供给substr()
的参数适用于substring()
。 由于不推荐使用substr()
,因此您只需更改为substring()
即可获得所需的结果。
const s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT" var findRepeatedDnaSequences = function(s) { var set = new Set() var seqSet = new Set() for (let i = 0; i < s.length - 11; i++) { let sub = s.substring(i, i + 10) console.log(sub) if (set.has(sub)) { seqSet.add(sub) } else { set.add(sub) } } return Array.from(set) }; findRepeatedDnaSequences(s)
const s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT" var findRepeatedDnaSequences = function(s) { var set = new Set() var seqSet = new Set() for (let i = 0; i < s.length - 11; i++) { let sub = s.substr(i, 10) console.log(sub) if (set.has(sub)) { seqSet.add(sub) } else { set.add(sub) } } return Array.from(set) }; findRepeatedDnaSequences(s)
在js中有两个功能:
substr():
substr() 方法返回字符串的一部分,从指定的索引开始,然后扩展给定数量的字符。
子串()。
substring() 方法返回开始和结束索引之间的字符串部分,或者返回到字符串的末尾。
您正在使用第一个,从您的问题来看,您期待第二个。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr 。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.