过滤以特定字符串开头的对象键

时间:2013-06-26 09:39:16

标签: javascript object key

我有一个带有这些属性键的对象:

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

我想确定以'cl'开头的属性键中的最高数字是多少。对于过滤过的',我想要' cl'密钥中的数字最多,而不是其价值。 (在这个例子中,这将是' cl3')。

到目前为止,我可以使用instance访问Object.keys(instance)属性键(我了解其中仅适用于现代浏览器,但这没关系)。现在我需要过滤掉所有'cl',然后找出哪个数字最高。

我想我应该看Math.max找出最高的数字。

任何朝着正确方向的推动,都会受到青睐?谢谢:))

1 个答案:

答案 0 :(得分: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"