我有一个对象" b"里面有很多物体,我想看看里面有多少特定的物体。
对象" b"里面有object k, object k, array cat
。
我想要做的是返回对象的次数" b"包含对象" k"。这应该是2,因为此对象有2个实例。我似乎无法获得长度。
我已经尝试了keys(b).length
,但这返回了所有对象的总数,包括非对象k。
例:
b["k","k","property","cat"]
如何获得" k"从上面的例子?
答案 0 :(得分:0)
当然键(b).length返回数组的长度。你可以做的是循环键(b)并检查K的外观并计算外观。
答案 1 :(得分:0)
您可以遍历数组中的项目,并仅计算与您要查找的内容相匹配的元素。
让我们说你的数组b
如下所示:
var b = ['k', 'k', 'property', 'cat'];
你只返回字符串数“k”的函数就是这样:
function elementCount(arr, element) {
var count = 0;
var i;
for (i = 0; i < arr.length; i++) {
if (arr[i] === element) {
count++
}
}
return count;
}
现在您可以通过运行来获取“k”元素的数量:
kCount = elementCount(b, 'k');
定义此功能的另一种方法是使用Array.prototype.reduce()
:
function elementCount(arr, element) {
return arr.reduce(function(prev, next) {
if (next === 'k') {
return prev + 1;
} else {
return prev;
}
}, 0);
}