我在JavaScript中遇到这个函数有困难,产生了我需要的结果。我试图找出字符串是否长度相同,这是我到目前为止所做的:
function areSameLength(str1, str2) {
if (str1 === str2) {
return true;
}
else
return false;
}
我不确定为什么这不正确。
答案 0 :(得分:2)
function areSameLength(str1, str2) {
if (str1.length === str2.length) { // you want to compare the lengths, not the strings themselves
return true;
}
else
return false;
}
更好,更短的版本:
function areSameLength(str1, str2) {
return str1.length === str2.length;
}
答案 1 :(得分:1)
您正在比较两个字符串以查看它们是否相等,这意味着只有相同的字符串匹配。
使用the length
property检查它们的长度是否相同,但不一定是相同的字符:
function areSameLength(str1, str2) {
return str1.length === str2.length;
}
// Some tests to show it works:
console.log(areSameLength('', '')); // true
console.log(areSameLength('test', 'test')); // true
console.log(areSameLength('testing', 'abcdefg')); // true
console.log(areSameLength('a', 'bcd')); // false
此外,这里不需要if else语句,因为比较返回一个布尔值,你可以简单地返回该值。
答案 2 :(得分:0)
您需要检查字符串的length
属性。
String
对象的The controller for path '/DebugWarmUp' was not found or does not implement IController.
属性表示字符串的长度,以UTF-16代码为单位。
length
答案 3 :(得分:0)
你需要使用"string".length
所以它会是:
function areSameLength(str1, str2) {
if (str1.length === str2.length) {
return true;
}
else
return false;
}
或更简单
function areSameLength(str1, str2) {
return str1.length === str2.length;
}
但是你可以开始变得更复杂。如果你想在检查之前确保str1或str2是一个字符串:
function areSameLength(str1, str2) {
if ((typeof str1 == 'string' || str1 instanceof String) && (typeof str2 == 'string' || str2 instanceof String)) {
return str1.length === str2.length;
}
else
return false;
}
这样做是检查变量的类型和实例以确保它是一个字符串。但它有点难看。所以你可能也想把它变成一个函数。
function isString(str)
{
return typeof str == 'string' || str instanceof String;
}
function areSameLength(str1, str2)
{
if (isString(str1) && isString(str2))
{
return str1.length === str2.length;
}
// return false if anything else
return false;
}