这是我第一个问题,当我开始我的编程之旅时堆栈溢出,所以我欢迎任何有关改进我的问题提问或研究技巧的建议。替代字符串长度属性
我想弄清楚如何确定字符串的长度,而不使用.length。相反,我被允许使用称为切片的字符串方法,并且问题在我构建递归代码时要求考虑索引。
我的做法是通过向后来解决这个没有上述限制性第一的最简单的方式思考想到这一点:
function stringLength (string) {
return string.length;
}
stringLength("Goodbye"); // This would invoke 7.
如果我再利用.slice方法和检验指标:
"Goodbye".slice(0); // This would invoke "Goodbye".
"Goodbye".slice(7); // This would invoke "".
因此获得字符串的长度,我也可以尝试来确定,以调用“”或试图找到最后一个字符的字符串中的指标,我将不得不“片”的字符数加1.
以下是我迄今为止的想法,但不确定我是否会朝着正确的方向前进,并且我不知道我的其他陈述中应该发表什么意见 - 任何建议或建议?
function stringLength (string) {
var index = 0; // I'm pretty sure this is wrong!
// My base case establishes that if the index number within the slice method invokes nothing, that index number is the length of the string
if (string.slice(index) === "") {
return index;
// Otherwise, cycle through the function until the index number is correct.
} else {
return string.slice(index + 1);
}
}
您还可以循环字符串,并计算每个迭代。但我可以问为什么你不使用'.length'属性? –
.slice采用两个参数开始和结束,但如果您省略第二个参数,则认为它是最后一个索引。看看http://www.w3schools.com/jsref/jsref_slice_string.asp为什么你不愿意使用长度属性。 – Manish
@Mr_Green这是我做这个学习课程时的练习的一部分。我个人对.length属性非常熟悉,但这个练习鼓励我们在盒子外面思考并利用递归。 – misteryeo