返回在字符串数组中找到的最高数字

百万

我有一个对象数组。这些对象具有一个称为的属性level该属性是一个包含数字且格式一致的字符串。

我试图找到最大的数字并仅返回那个数字,但是就如何从当前代码继续进行看来,我似乎受到了限制。

这是我当前代码的小提琴:http : //jsfiddle.net/6sXYR/

这是我的JavaScript:

var myArray = [
    {
        color: 'blue',
        level: 'L1'
    },
    {
        color: 'red',
        level: 'L1'
    },
    {
        color: 'green',
        level: 'L2'
    },
    {
        color: 'yellow',
        level: 'L2'
    },
    {
        color: 'purple',
        level: 'L3'
    }
];

for (var i = 0; i < myArray.length; i++) {
    console.log( myArray[i].level.substring(1,2) );
};

我试图得到的结果是仅返回上面示例中的数字“ 3”。最高编号可能并不总是位于数组的最后一个对象中,但始终会采用L#格式。

myfunkyside

试试这个(http://jsfiddle.net/QQv7E/):

var highestNum=0;
for (var i=0; i<myArray.length; i++) {
    var num = parseInt(myArray[i].level.substring(1));
    if (num > highestNum) {
        highestNum = num;
    }
}
console.log(highestNum);

更新:

正如King King在对您的问题的评论中提到的那样,如果没有其他特殊原因将您的关卡设置为以下格式:L#,则
最好仅将数字放在该位置(不使用int格式string)。

结果是该行:
var num = parseInt(myArray[i].level.substring(1));
变为此行:
var num = myArray[i].level;

这剥夺了substring()parseInt()功能,使您的代码更加有效。

小提琴:http//jsfiddle.net/H8X8x/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章