- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在参加 Freecodecamp 算法挑战,因为我是编程新手。问题描述如下:
Reverse the provided string. You may need to turn the string into an array before you can reverse it. Your result must be a string.
我接受了将字符串转换为数组的建议,但输出有一些问题。这是我的实现:
function reverseString(str) {
var myAr = str.split("");
newString = myAr.reverse().toString().replace(/,/g,"");
return newString;
}
这对于某些字符串效果很好,例如hello world
,但不适用于带逗号的字符串,例如你好,世界!
。
我的预期输出是 !dlrow ,olleh
但我得到 !dlrow olleh
。
为什么我的代码失败了?我该怎么做才能克服这个问题?
最佳答案
正如评论中已经指出的, String.split("")
的“逆”是 Array.join("")
这可以避免输入字符串包含逗号时出现问题。
为什么 myAr.reverse().toString().replace(/,/g,"")
会导致逗号问题?让我们看看当我们提供带有逗号的字符串时会发生什么:
reverseString('one, two'); // returns "owt eno" - missing the comma
您首先将此字符串拆分为字符数组:
myAr = str.split(""); // evaluates to ["o", "n", "e", ",", " ", "t", "w", "o"]
然后,反转数组:
myAr.reverse() // evaluates to ["o", "w", "t", " ", ",", "e", "n", "o"]
接下来,将反转的数组转换为字符串:
myAr.reverse().toString() // evaluates to "o,w,t, ,,,e,n,o"
最后,删除所有逗号:
myAr.reverse().toString().replace(/,/g,""); // evaluates to "owt eno"
您会看到,将数组转换为字符串(步骤 3)等于用逗号连接所有元素。它与执行 array.join(",") 相同。现在,通过从该字符串中删除所有逗号(在步骤 4 中),不幸的是,您也删除了作为输入一部分的那些逗号。无法区分“真正的”逗号和通过连接数组引入的逗号(在步骤 3 中)。
我还建议进行一些命名更改,并使用 var
将当前全局变量 newString
声明为局部变量,或者立即返回它而不引入新变量:
function reverseString(string) {
var chars = string.split("");
return chars.reverse().join("");
}
console.log(reverseString("hello"));
如果您想避免使用内置的 Array.reverse
函数,请查看此问题的答案:reverse-string-in-javascript-without-using-reverse
关于javascript - 为什么我的反向字符串缺少逗号? (Freecodecamp 初学者算法示例 1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43711576/
我目前正在通过 freecodecamp 网站的 javascript 部分进行练习,我试图理解为什么特定的方法可以解决它。 function nextInLine(arr, item) { /
我正在尝试解决 freecodecamp 中的高尔夫代码挑战,但我无法真正弄清楚我的代码出了什么问题这里直接link 。链接包含我尝试运行的代码,只需访问该链接即可。 我的JS: function g
我正在尝试解决这个挑战“寻找和毁灭”。我不知道出了什么问题。有什么帮助吗? 寻找并摧毁您将获得一个初始数组(销毁器函数中的第一个参数),后跟一个或多个参数。从初始数组中删除与这些参数具有相同值的所有元
我在 freecodecamp 中遇到了一个 JavaScript 挑战,这可能非常简单,但我仍然不明白如何去做。其过程如下: // Setup function phoneticLookup(val
我无法提交表单 我已经彻底检查了我的代码几个小时,并查看了 freecodecamp 论坛上的帖子,但在我看来我仍然无法提交表单,也无法查明问题所在。 Email:
引用How can I get the sum of all odd fibonacci vales in javaScript?来自 FCC 的可能解决方案如下所示: function sumFib
我正在使用 freecodecamp 并进行以下练习: https://learn.freecodecamp.org/javascript-algorithms-and-data-structures
我正在努力在 FreeCodeCamp 上传递一些看起来很简单的东西。我的代码应该通过所有测试(console.log 似乎是这么认为的)。你觉得怎么样,我是不是漏掉了什么? 我失败的测试用例: ur
我正在尝试在 freecodecamp 上完成 twitch api。 我有一个 allTotalUsers 数组,其中包含我正在循环访问的用户。 我的循环似乎正确地为我的 allTotalUsers
我正在尝试为 freeCodeCamp 收银机项目创建一个 javascript 收银机函数。 它应该如何工作的描述如下: 设计收银抽屉功能checkCashRegister()接受购买价格作为第一个
function titleCase(str) { var strArr = str.toLowerCase().split(' '); var strUp = [str.leng
我正在参加 Freecodecamp 算法挑战,因为我是编程新手。问题描述如下: Reverse the provided string. You may need to turn the strin
当我在免费代码训练营开始“Falsy Bouncer”挑战时,我遇到了一个小问题。当我尝试创建如下所示的新 bool 对象时: var bool = new Boolean(); 出现一个黄色三 An
我正在应对 FreeCodeCamp 挑战,但遇到了以下挑战: Our goal for this Algorithm is to split arr (first argument) into sm
我正在 freecodecamp.com 上学习第 15 课,但我似乎无法完成它。目标是让我的 h2 元素使用字体 'Lobster',同时保持 Monospace。我应该复制,“http://fon
请参阅我针对以下挑战的(非最佳)解决方案: Return the number of total permutations of the provided string thatdon't have
我正在做一项练习,要求: 创建一个函数,该函数查找对象数组(第一个参数)并返回具有匹配属性和值对(第二个参数)的所有对象的数组。如果要包含在返回的数组中,源对象的每个属性和值对都必须存在于集合中的对象
我的代码不在网页上显示 Logo 、显示名称和状态,尽管它们显示在控制台中。请帮我找出问题所在。我非常感激!谢谢! 这是我的笔: https://codepen.io/cmtran/pen/vJGRW
返回排序后应将值(第二个参数)插入数组(第一个参数)的最低索引。返回值应该是一个数字。 例如,getIndexToIns([1,2,3,4], 1.5) 应该返回 1,因为它大于 1(索引 0)但小于
我对 JavaScript 还比较陌生。我正在开发 freeCodeCamp - “随机报价机”。并尝试发送变量和/或 html .class。 到目前为止我的代码:Code Pen $('#twee
我是一名优秀的程序员,十分优秀!