簡體   English   中英

使用名稱過濾器計算對象屬性的數量

[英]Counting number of object properties with a name filter

我有一個看起來像的對象:

{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);

您可能可以使用地圖來完成此操作,但是我不確定該功能是否具有本機功能

純javascript沒有特殊功能...對象和數組是如此糟糕...

您可以為此使用下划線lib

代碼如下:

$(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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM