2013-06-26 8 views
0

У меня есть объект с этими ключами собственности:объект фильтра ключей, начинающиеся с определенной строкой

instance['banana']; 
instance['cl']; 
instance['cl2']; 
instance['minion']; 
instance['cl3']; 

я хотел бы, чтобы определить, что наибольшее число среди ключей свойств, начиная с 'cl'. Итак, отфильтрованные «cl», я хочу, чтобы «cl» с наивысшим номером в его ключе, а не по его значению. (В этом примере это будет «cl3»).

До сих пор я могу получить доступ к ключам свойств instance с Object.keys(instance) (из которых я понимаю, работает только в современных браузерах, но все в порядке). Теперь мне нужно просто отфильтровать все 'cl' s, а затем узнать, какое число является самым высоким.

Я думаю, я должен смотреть на Math.max для определения самого высокого числа.

Любое толчок в правильном направлении, por favor? Спасибо :)

ответ

1
var cls = Object.keys(instance).map(function(key){ 
    return /^cl/.test(key) && +key.replace(/\D+/,''); 
}); 
//^= [false,"",2,false,3] == [0,0,2,0,3] 

var maxCl = 'cl'+ Math.max.apply(0, cls); //= "cl3" 
+0

Извините, @elclanrs. Я думаю, что, возможно, было неясно. Я имею в виду отфильтрованный '' cl's', я хочу, чтобы '' cl'' с наивысшим номером в его ключе. (В этом примере это будет '' cl3''). – AKG

+0

Позвольте мне посмотреть, что я могу сделать. – elclanrs

+0

@AKG: См. Править, что следует делать. – elclanrs

Смежные вопросы