2016-11-30 35 views
1

我有一個對象「B」,這裏面有它的許多對象,我想看看有多少特定的對象我有這裏面的。我怎麼能算重複對象的數量對象

對象「b」裏面有:object k, object k, array cat

我想要做的就是返回對象「b」包含對象「k」的次數。這應該是2,因爲這個對象有2個實例。我似乎無法得到長度。

我已經試過keys(b).length但總所有對象,包括不反對K退回。

例子:
b["k","k","property","cat"]

如何從上面的例子中得到總 「K」 的?

+0

你能不能給對象B的結構的爲例。 – marcan2020

+0

ive在上面的例子中更新了 – sarah

+0

這個問題,「k」是一個字符串,而不是一個對象 – hackerrdave

回答

0

鍵(b).length返回數組的長度。你可以做的是循環鍵(b)和檢查,如果K的外觀和計數外觀。

+0

可以請舉例 – sarah

+0

我更新問題 – sarah

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

定義此功能的另一種方法是將u SE Array.prototype.reduce()

function elementCount(arr, element) { 
    return arr.reduce(function(prev, next) { 
    if (next === 'k') { 
     return prev + 1; 
    } else { 
     return prev; 
    } 
    }, 0); 
} 
+0

如果我有一個數組「b」 - 這個數組b「k」 k「,」property「,」cat「],我如何循環並找到」k「的數字? – sarah

相關問題