簡體   English   中英

添加到數組中的額外元素

[英]Extra elements being added to an array

我試圖以新手的身份解決這個問題,並且在循環后我在返回的數組中看到了額外的元素。

In DNA strings, symbols "A" and "T" are complements of each other, as "C" and "G". 
You have function with one side of the DNA, you need to get the other complementary side.

這是我的解決方案

let dnaComStrand = [];
const DNAStrand = function (dnaStrand) {
  for (let i = 0; i < dnaStrand.length; i++) {
    if (dnaStrand[i] === `A`) {
      dnaComStrand[i] = `T`;
    } else if (dnaStrand[i] === `T`) {
      dnaComStrand[i] = `A`;
    } else if (dnaStrand[i] === `C`) {
      dnaComStrand[i] = `G`;
    } else if (dnaStrand[i] === `G`) {
      dnaComStrand[i] = `C`;
    }
  }
  //   return dnaComStrand.join(``);
  return dnaComStrand;
};
console.log(DNAStrand(`GCATA`));

然而在我看到的控制台中

Array(5) [ "C", "G", "T", "A", "T" ]

如果我再次嘗試調用該函數,這會變得更加混亂。

console.log(DNAStrand([`T`, `C`, `G`]));

導致

Array(5) [ "A", "G", "C", "A", "T" ]

這些額外的元素是從哪里來的?? 提前致謝

你可以做:

 const hash = { A: 'T', T: 'A', C: 'G', G: 'C', } const DNAStrand = dnaStrand => dnaStrand.split('').map(c => hash[c]) // 1 const dnaComStrand1 = DNAStrand(`GCATA`) console.log(dnaComStrand1) // 2 const dnaComStrand2 = DNAStrand(dnaComStrand1.join('')) console.log(dnaComStrand2)

使用函數內部和循環之前的一組新元素重新初始化數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM