我有一个对象数组。这些对象具有一个称为的属性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#格式。
试试这个(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()
功能,使您的代码更加有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句