2017-09-11 27 views
-2

我有例如數組如何獲得值的數量在一個陣列

var Fruits : ["apple","banana","apple", "orange","banana","kiwi","orange"]; 

現在我想用在以下類型的對象數組刪除重複值,以獲取計數刪除重複值

0: fname: "apple" 
    Count: 2; 
1: fname: "banana" 
    Count: 2; 
2: fname: "orange" 
    Count: 2; 
3:fname: "kiwi" 
    Count: 1; 

誰能幫我得到這個對象數組

+0

*類型的對象數組* - 有沒有這樣的類型。闡述你想要的結構。你想要一個對象數組嗎? – RomanPerekhrest

+0

是的。我想轉換成數組對象。 –

+0

水果[0]應該包含fname作爲蘋果,數量爲2 –

回答

0

var Fruits = ["apple","banana","apple", "orange","banana","kiwi","orange"]; 
 

 
var uniqueArr = Fruits.filter(function(elem, index, self) { 
 
    return index == self.indexOf(elem); 
 
}) 
 

 
var resObjArr = []; 
 

 
uniqueArr.forEach(function(ele){ 
 
    var count = 0; 
 
    var resObj = {}; 
 
    Fruits.forEach(function(eleF){ 
 
    if(ele == eleF) count++; 
 
    }) 
 
    resObj['fname'] = ele; 
 
    resObj['Count'] = count; 
 
    resObjArr.push(resObj); 
 
}) 
 

 
console.log(resObjArr)

刪除陣列中的重複項。並在您的主數組中統計不同的元素數量。然後將其推送到結果對象。

0

Array.prototype.reduce()方法:

var fruits = ["apple","banana","apple", "orange","banana","kiwi","orange"], 
 
    result = []; 
 
\t 
 
fruits.reduce(function(r, i){ 
 
    (r[i])? r[i].count += 1 : result.push((r[i] = {fname: i, count: 1})); \t \t 
 
    return r; 
 
}, {}); 
 
\t 
 
console.log(result);

+0

謝謝。它爲我工作 –

0
arr = [] 
for(var i = 0; i < Fruits.length; i++){ 
    if (arr.indexOf(Fruits[i]) == -1){ 
     arr.push(Fruits[i])  
    } 
} 

objects = [] 

for (var a = 0; a < arr.length; a++){ 
    var count = Fruits.filter(function(fruit) fruit == arr[a]) 
    objects.push({"fname": arr[a], "count": count.length}) 
} 
0
var Fruits = ["apple","banana","apple", "orange","banana","kiwi","orange"]; 

var uniqueArr = new Set(Fruits); 
var result = []; 
uniqueArr.forEach(function(ele){ 
    var count = 0; 
    var resObj = {}; 
    Fruits.forEach(function(eleF){ 
     if(ele == eleF) 
     count++; 

    }) 
    resObj['fname'] = ele; 
    resObj['Count'] = count; 
    result.push(resObj); 
}) 
相關問題