Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用名称筛选器计算对象属性的数量_Javascript_Properties_Count_Key - Fatal编程技术网

Javascript 使用名称筛选器计算对象属性的数量

Javascript 使用名称筛选器计算对象属性的数量,javascript,properties,count,key,Javascript,Properties,Count,Key,我有一个对象,看起来像: {a: 1, b:2, c:3, cp1:6, cp2:7 cp3:8, cp4:9} 我对对象中的cpX出现次数感兴趣,Javascript(或jQuery)中是否有一种简单的方法来计算与模式匹配的出现次数。比如: Object.keys(myObj,/cp\d+/).length(); 我知道我可以自己对它进行迭代,但如果这个功能已经存在,我也不会感到惊讶。这可能就可以了 var obj={a: 1, b:2, c:3, cp1:6, cp2:7 cp3:8,

我有一个对象,看起来像:

{a: 1, b:2, c:3, cp1:6, cp2:7 cp3:8, cp4:9}
我对对象中的cpX出现次数感兴趣,Javascript(或jQuery)中是否有一种简单的方法来计算与模式匹配的出现次数。比如:

Object.keys(myObj,/cp\d+/).length();
我知道我可以自己对它进行迭代,但如果这个功能已经存在,我也不会感到惊讶。

这可能就可以了

var obj={a: 1, b:2, c:3, cp1:6, cp2:7 cp3:8, cp4:9};
var num=0;
for (var key in obj) {
  if (/^cp/.test(key)) {
    ++num;
  }
}
alert(num);
您可能可以使用“地图”来完成,但我不确定是否有本机的功能

var obj={a: 1, b:2, c:3, cp1:6, cp2:7 cp3:8, cp4:9};
var num=0;
for (var key in obj) {
  if (/^cp/.test(key)) {
    ++num;
  }
}
alert(num);

您可能可以使用映射来实现,但我不确定是否有本地功能用于此

纯javascript中没有特殊功能。。。对象和数组太差了

您可以为此目的使用

代码如下:

$(function(){
  var a = {a: 1, b:2, c:3, cp1:6, cp2:7, cp3:8, cp4:9};
  var result = _(a).chain().keys().select(function(key){ return key.match(/^cp/);}).value().length;
  $('#results').html(result);
});

试试看。

纯javascript中没有特殊功能。。。对象和数组太差了

您可以为此目的使用

代码如下:

$(function(){
  var a = {a: 1, b:2, c:3, cp1:6, cp2:7, cp3:8, cp4:9};
  var result = _(a).chain().keys().select(function(key){ return key.match(/^cp/);}).value().length;
  $('#results').html(result);
});
试试看。

Object.keys()不支持筛选数组项。但是您可以使用jQuery的
grep()
函数来过滤密钥

这一个有效:

var x = {a: 1, b:2, c:3, cp1:6, cp2:7, cp3:8, cp4:9};
var cpItemsLength = $.grep(Object.keys(x), function(n) { 
    return /cp\d+/.test(n);
}).length;
Object.keys()
不支持筛选数组项。但是您可以使用jQuery的
grep()
函数来过滤密钥

这一个有效:

var x = {a: 1, b:2, c:3, cp1:6, cp2:7, cp3:8, cp4:9};
var cpItemsLength = $.grep(Object.keys(x), function(n) { 
    return /cp\d+/.test(n);
}).length;

@drjerry没有要求使用迭代来完成。如果没有本机功能,使用迭代是最简单的方法@Jerry博士没有规定迭代,但也没有禁止它。暗示的优惠被给予了,但什么也没有specific@drjerry没有要求使用迭代。如果没有本机功能,使用迭代是最简单的方法@Jerry博士没有规定迭代,但也没有禁止它。虽然给出了一个隐含的首选项,但没有给出任何具体信息。感谢我将要研究的下划线_lib链接,但是我有点不愿意包含另一个javascript库。所以我将继续使用jQuery的grep。只有3Kb的代码。但是功能是很好的。我总是使用这个库来模板化和处理对象和数组。感谢我将要研究的下划线库链接,但是我有点不愿意包含另一个javascript库。所以我将继续使用jQuery的grep。只有3Kb的代码。但是功能是很好的。我总是使用这个库来模板化和处理对象和数组。这个答案实际上并不正确在这里,您可以看到所有支持此功能的浏览器列表。如果对你来说没问题,就用它,但这种方式对我来说不合适:)这个答案实际上是不对的在这里,您可以看到所有支持此功能的浏览器列表。如果对你来说没问题,就用它,但这种方式对我来说不合适:)