pop()方法javascript没有给出完整的输出
pop() method javascript not giving full output
我有点像个白痴,问这个问题,但学习javascript,在coderbyte上做一些简单的挑战,想反转一个字符串,所以使用这个
var randomString = "THIS IS THE STRING I AM TRYING TO REVERSE";
var newFunc = function() {
var randomArray = randomString.split(" ");
var newArray = [];
for (var i = 0; i <= randomArray.length; i++) {
newArray[i] = randomArray.pop();
var diffString = newArray.join(" ");
}
console.log(diffString);
};
newFunc();`
但我得到的只是
"与我尝试相反"。
为什么不打印字符串的其余部分?我现在正在用一种不同的方法来逆转它,但这是最直接的,只是弄不明白为什么它不起作用。提前谢谢。
当您从randomArray
中弹出值时,它会更改数组的长度。由于for循环在每次迭代时都会检查它,因此它会过早地脱离循环,因为长度会变短。
修复方法是在开始弹出之前保存长度,并在for循环中使用该长度。
(这假设你试图颠倒字符串中单词的顺序。)
var randomString = "THIS IS THE STRING I AM TRYING TO REVERSE";
var newFunc = function() {
var randomArray = randomString.split(" ");
var newArray = [];
var length = randomArray.length;
for (var i = 0; i <= length; i++) {
newArray[i] = randomArray.pop();
}
var diffString = newArray.join(" ");
console.log(diffString);
};
newFunc();
正如其他人所指出的,检查数组的长度变化是一个问题;在前面缓存一次,这样你就可以弹出正确的次数,只需将for循环更改为(也可以从<=
修复为正确的<
):
for (var i = 0, len = randomArray.length; i < len; i++) {
当然,这里愚蠢的部分是你在手动执行反转。已经有Array.reverse
:
var newFunc = function() {
console.log(randomString.split(" ").reverse().join(" "));
};
完成。一个排成偶数。而且这个功能并不是非标准的,IE从5.5开始支持它,从1.0版本开始支持其他浏览器。
如前所述,在循环中更改长度。也许Array.sort在这里更容易使用?或正如ShadowRanger提到的那样。
var randomString = "test sds2 iujn3 iujn4 jijb5 reverse";
function reverse(x) {
return x // This is a <string>
.split(" ") // Transform <string> into <Array>
.reverse() // Reverse array order
.join(" "); // Transform <Array> back into <string>
}
console.log(reverse(randomString));
相关文章:
- 有没有一种方法可以从两个标签之间提取文本,并以我选择的格式输出
- ajax方法返回错误时如何打印输出
- 有没有一种方法可以捕获JavaScript控制台输出,以便我可以在其他地方引用它
- javascript输出true中的hasOwnProperty方法
- 在 nodejs 中有什么方法可以打印 JSON 格式的 log4js 输出
- 配置早午餐以从一个模板文件输出多个 HTML/JS 文件的正确方法是什么?
- 使用输入/输出事件在 Angular 2 中的父组件中触发方法
- Vue.js 使用 Vuex 和自定义组件,@click方法输出未定义
- 如何仅使用 JavaScript 的 stringify() 方法在第一级自定义 JSON 输出
- 关于确定数组中存储的最大值的不同方法的一些问题(加上输出消息问题)
- 如何将帮助程序方法的输出用作 HAML 哈希中的值
- Javascript call() 方法未生成预期的输出
- 在 JS 中的表单验证方法中获取表单提交方法的输出
- 保存富文本(所见即所得输出)的最佳方法是什么
- pop()方法javascript没有给出完整的输出
- 不理解此forEach()方法的输出
- 使用 AOP 的方法调用前后的 Javascript 控制台输出
- 有没有一种更简单的方法可以输出完整的'脚本'标记为文本
- 从ajax调用中输出图像的最快方法
- Box2dWeb中是否有方法将对象的位置.x输出到console.log()