【问题标题】:CoffeeScript split function not working as expected [closed]CoffeeScript 拆分功能无法按预期工作 [关闭]
【发布时间】:2018-01-08 20:11:22
【问题描述】:

我正在尝试使用 CoffeeScript 通过在逗号上拆分将字符串拆分为数组元素。

stringArray = string.split(',')
for element in stringArray
    console.log element

我遇到的问题是某些组件在遍历数组时没有得到控制台记录。我希望输出 9 个子字符串,因为有 8 个逗号。

相反,输出了 5 个元素,而没有输出 4 个。它们没有附加到其他元素或类似的东西上,只是丢失了。

这是我要解析的字符串,粗体元素是行为不端的元素:

A|downstream_gene_variant|MODIFIER|PMF1-BGLAP|ENSG00000260238|成绩单|ENST00000490491|蛋白质编码|||||||||134|1||SNV|HGNC|HGNC:42953|||U3KQ54|UPI000046FD09| |||,A|non_coding_transcript_exon_variant|MODIFIER|PAQR6|ENSG00000160781|成绩单|ENST00000491107|processed_transcript|7/7||ENST00000491107.5:n.1738C>T||1738||||||-1||SNV| HGNC|HGNC:30132|||||||,A|non_coding_transcript_exon_variant|MODIFIER|PAQR6|ENSG00000160781|成绩单|ENST00000492619|processed_transcript|7/7||ENST00000492619.5:n.1978C>T||1978||| ||||-1||SNV|HGNC|HGNC:30132|||||||,A|downstream_gene_variant|MODIFIER|PMF1|ENSG00000160783|成绩单|ENST00000497069|nonsense_mediated_decay||||||||||| 3748|1|cds_start_NF|SNV|HGNC|HGNC:9112|||V9GYH6|UPI0003B92863||||,A|3_prime_UTR_variant|MODIFIER|PAQR6|ENSG00000160781|Transcript|ENST00000540423|protein_coding|5/5||ENST0000 5:c.*395C>T||1584|||||||-1||SNV|HGNC|HGNC:30132|||Q7Z4Q8|UPI00001B3F57||||,A|downstream_gene_variant|MODIFIER| PMF1-BGLAP|ENSG00 000260238|成绩单|ENST00000567140|蛋白质编码|||||||||||252|1||SNV|HGNC|HGNC:42953|||A0A087WT04|UPI0001ED050B||||,A|3_prime_UTR_variant|MODIFIER| PAQR6|ENSG00000160781|成绩单|ENST00000612424|蛋白质编码|6/6||ENST00000612424.4:c.*395C>T||1892||||||-1||SNV|HGNC|HGNC:30132|||B4DJ42 |UPI00017A70F0||||,A|3_prime_UTR_variant|MODIFIER|PAQR6|ENSG00000160781|成绩单|ENST00000613336|蛋白质编码|5/5||ENST00000613336.4:c.*395C>T||1454|| |||||-1||SNV|HGNC|HGNC:30132|||Q7Z4Q8|UPI00001B3F57||||,A|3_prime_UTR_variant|MODIFIER|PAQR6|ENSG00000160781|成绩单|ENST00000623241|蛋白质编码| 5/5||ENST00000623241.3:c.*395C>T||1816||||||-1||SNV|HGNC|HGNC:30132|||Q7Z4Q8|UPI00001B3F57||||

非常感谢任何输入!

已解决

原来这是一个下游问题。我有使用“return”的 if 语句,认为它会继续迭代,而实际上它只是终止了它。用“继续”替换了那些“返回”语句,它起作用了。感谢所有关于问题和问题格式的意见!

【问题讨论】:

  • tried it 我得到了九块。也许您的源代码中的一些看起来像逗号的字符不是逗号,但是将它们复制到 SO 中会将它们变成逗号。
  • 这与 Perl 无关。我删除了那个标签
  • 这不是 Perl、Javascript,它有点像 Python,但不是真的...... 它是什么语言?!
  • 抱歉,我提到了 Perl,我不知道为什么
  • 好吧,它仍然不是 Javascript。是某种方言吗?如果有,请提及。

标签: arrays split coffeescript


【解决方案1】:

您的代码按原样运行。这是编译好的JS:

var element, i, len, string, stringArray;

string = "A|downstream_gene_variant|MODIFIER|PMF1-BGLAP|ENSG00000260238|Transcript|ENST00000490491|protein_coding|||||||||||134|1||SNV|HGNC|HGNC:42953|||U3KQ54|UPI000046FD09||||,A|non_coding_transcript_exon_variant|MODIFIER|PAQR6|ENSG00000160781|Transcript|ENST00000491107|processed_transcript|7/7||ENST00000491107.5:n.1738C>T||1738|||||||-1||SNV|HGNC|HGNC:30132||||||||,A|non_coding_transcript_exon_variant|MODIFIER|PAQR6|ENSG00000160781|Transcript|ENST00000492619|processed_transcript|7/7||ENST00000492619.5:n.1978C>T||1978|||||||-1||SNV|HGNC|HGNC:30132||||||||,A|downstream_gene_variant|MODIFIER|PMF1|ENSG00000160783|Transcript|ENST00000497069|nonsense_mediated_decay|||||||||||3748|1|cds_start_NF|SNV|HGNC|HGNC:9112|||V9GYH6|UPI0003B92863||||,A|3_prime_UTR_variant|MODIFIER|PAQR6|ENSG00000160781|Transcript|ENST00000540423|protein_coding|5/5||ENST00000540423.5:c.*395C>T||1584|||||||-1||SNV|HGNC|HGNC:30132|||Q7Z4Q8|UPI00001B3F57||||,A|downstream_gene_variant|MODIFIER|PMF1-BGLAP|ENSG00000260238|Transcript|ENST00000567140|protein_coding|||||||||||252|1||SNV|HGNC|HGNC:42953|||A0A087WT04|UPI0001ED050B||||,A|3_prime_UTR_variant|MODIFIER|PAQR6|ENSG00000160781|Transcript|ENST00000612424|protein_coding|6/6||ENST00000612424.4:c.*395C>T||1892|||||||-1||SNV|HGNC|HGNC:30132|||B4DJ42|UPI00017A70F0||||,A|3_prime_UTR_variant|MODIFIER|PAQR6|ENSG00000160781|Transcript|ENST00000613336|protein_coding|5/5||ENST00000613336.4:c.*395C>T||1454|||||||-1||SNV|HGNC|HGNC:30132|||Q7Z4Q8|UPI00001B3F57||||,A|3_prime_UTR_variant|MODIFIER|PAQR6|ENSG00000160781|Transcript|ENST00000623241|protein_coding|5/5||ENST00000623241.3:c.*395C>T||1816|||||||-1||SNV|HGNC|HGNC:30132|||Q7Z4Q8|UPI00001B3F57||||";

stringArray = string.split(',');

for (i = 0, len = stringArray.length; i < len; i++) {
  element = stringArray[i];
  console.log(element);
}

我刚刚把你的代码扔到了CoffeeScript.org's "Try It" feature

【讨论】:

    猜你喜欢
    • 2015-01-24
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多