首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Exercism RNA转录失败

Exercism RNA转录失败
EN

Stack Overflow用户
提问于 2018-11-03 05:07:29
回答 2查看 261关注 0票数 0

由于某些原因,我在这个练习中遇到了问题。我已经尝试了各种迭代,但在这个测试中仍然失败:

代码语言:javascript
复制
xtest('correctly handles invalid input', () => {
    expect(() => toRna('U')).toThrow(new Error('Invalid input DNA.'));
});

这是我的代码。如果有人能发现问题所在,我将万分感激。

代码语言:javascript
复制
const toRna = function(dna) {
  const parseDna = dna.split("");
  let rna = "";
  for (let i = 0; i < parseDna.length; i++) {
    if (parseDna[i] === "G") {
      rna += "C";
    } else if (parseDna[i] === "C") {
      rna += "G";
    } else if (parseDna[i] === "T") {
      rna += "A";
    } else if (parseDna[i] === "A") {
      rna += "U";
    } else {
      throw new Error("Invalid input DNA.");
    // This part doesn't work for some reason.
    }
  }
  return rna;
};

console.log(toRna("ACGT"));

下面是它正在运行的测试类:

代码语言:javascript
复制
import { toRna } from './rna-transcription';

describe('Transcriptor', () => {
  test('correctly handles invalid input', () => {
    expect(() => toRna('U')).toThrow(new Error('Invalid input DNA.'));
  });

  test('correctly handles completely invalid input', () => {
    expect(() => toRna('XXX')).toThrow(new Error('Invalid input DNA.'));
  });

  test('correctly handles partially invalid input', () => {
    expect(() => toRna('ACGTXXXCTTAA')).toThrow(new Error('Invalid input DNA.'));
  });
});

EN

回答 2

Stack Overflow用户

发布于 2018-11-03 05:18:33

您的代码似乎工作得很好。

当您运行console.log(toRna("U"))时,确实会抛出一个错误!

代码语言:javascript
复制
Error: Invalid input DNA.
    at toRna (/home/ashvitha/Desktop/dna.js:14:13)
    at Object.<anonymous> (/home/ashvitha/Desktop/dna.js:21:13)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3

出问题的是你的期望似乎要落空了。不确定这是否是一个赋值,但是你应该检查你的代码的那一部分,看看哪里出了问题!

希望这能有所帮助:)

票数 0
EN

Stack Overflow用户

发布于 2018-11-07 00:18:35

确保在函数前面的第一行添加export,并删除代码末尾的console.log部件。

代码语言:javascript
复制
export const toRna = function(dna) {
  const parseDna = dna.split("");
  let rna = "";
  for (let i = 0; i < parseDna.length; i++) {
    if (parseDna[i] === "G") {
      rna += "C";
    } else if (parseDna[i] === "C") {
      rna += "G";
    } else if (parseDna[i] === "T") {
      rna += "A";
    } else if (parseDna[i] === "A") {
      rna += "U";
    } else {
      throw new Error("Invalid input DNA.");
    // This part doesn't work for some reason.
    }
  }
  return rna;
};

// console.log(toRna("U"));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53125830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档