javascript - 为什么无法检测到数组中更大的 JavaScript 字符串?

标签 javascript

这是我的代码的一部分。我正在做 JavaScript 练习。

switch(size) {
   case "big":
        var nameSize = "";
        if(fNames[i].length > nameSize.length) {
            nameSize = fNames[i];
        }
        console.log("Your Female Big: " + nameSize);
   break;

用户通过prompt()选择“大”大小的名称(数组中较大的字符串)。我试图验证 fNames[i] 是否是我的数组 fNames 中要返回给用户的较大字符串,但不起作用,它返回所有字符串。 。我做错了什么?

----> JSfiddle

更新

此代码有效:

var array = [3, 6, 2, 56, 32, 5, 89, 32];
var largest = 0;
for(i = 0; i < array.length; i++) {
    if(array[i] > largest) {
        largest = array[i];
    }
}
console.log(largest);

(来自codecademy)

我认为这是相同的逻辑。那么为什么我的代码不起作用呢?

最佳答案

我认为你应该添加.length:

nameSize = fNames[i].length;

如果这种情况发生在循环内,您应该检查最大的长度与循环中的 var 相比:

var name = '';
if(fNames[i].length > name.length) {
    name = fNames[i];
}

请注意,在 if 中,您对两个变量都使用了 .length

关于javascript - 为什么无法检测到数组中更大的 JavaScript 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21102795/

相关文章:

javascript - 间接使用时 Function.prototype 定义中的 'return this' 有什么用处?

javascript - 在 ngRepeat 内部时,如何从 Angular 中的指令向 $scope 添加新属性

javascript - 在 &lt;script&gt; 标记中附加到 URL 末尾时调整宽度和高度

javascript - 范围超过 Canvas 的奇怪错误

c# - 从 RESTful WCF 服务返回图像

javascript - 将编译后的sass写入文件的父目录

javascript - 在 DIV 单击事件中,父项优先于子项

javascript - Angular UI网格无法对具有行索引的列进行排序

javascript - Firefox:单击并更改未附加到文档树中的复选框元素上的事件

javascript - 无法使用 Jquery 3.4.1、c# mvc 设置下拉列表的选定属性