Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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_Reactjs_Regex - Fatal编程技术网

获取JAVASCRIPT数组集合中的对象数

获取JAVASCRIPT数组集合中的对象数,javascript,reactjs,regex,Javascript,Reactjs,Regex,我有一个数组集合,每个数组中都有动态数量的对象: arr1=[obj1, obj2, obj3, other1, other2] arr2=[obj1, obj2, other1] ...//some more arrays with any number of objects inside them 我想计算对象的总数,忽略“其他”对象,只计算“obj”对象 我不确定是否可以通过阵列分解来实现这一点。 有什么想法吗?您可以通过循环每个值来计算数组中的对象数 并检查该值是否为对象 var ob

我有一个数组集合,每个数组中都有动态数量的对象:

arr1=[obj1, obj2, obj3, other1, other2]
arr2=[obj1, obj2, other1]
...//some more arrays with any number of objects inside them
我想计算对象的总数,忽略“其他”对象,只计算“obj”对象

我不确定是否可以通过阵列分解来实现这一点。
有什么想法吗?

您可以通过循环每个值来计算数组中的对象数 并检查该值是否为对象

var objects_count = 0;

for (var i=0; i<arr.length; i++) {
    if (typeof(arr[i]) == 'object') {
        objects_count += 1;
    }
}
var对象\u计数=0;

对于(var i=0;i,无法避免对数组进行迭代,但可以隐式地进行

假设您有一个名为
objDetector
的函数,该函数返回
true
,如果一个元素应该计数,则返回
false
,否则,您可以执行以下操作:

const numberOfObjs = arr.filter(objDetector).length

从实际情况来看,我认为您不应该将用户输入直接输入RegEx变量。那么我应该怎么做呢?找到所有可能的RegEx保留/可供使用的字符,用户可以输入并替换为安全字符或转义。括号中的('是组的正则表达式字符,这意味着您不能转义它。我知道这一点,但如何让我的正则表达式从用户输入中忽略它?而objDetector是一个函数?