我有一個具有重複值的對象,我想要計算所有具有相同值並將其刪除的對象。Javascript - 計數並從對象中移除
var myArray = [{nr: 'bbc',}, {nr: 'bbc'}, {nr: 'bbc'}, {nr: ccc}];
從這個數組中我想創建另一個數組,但刪除重複的值並計數它們是這樣的。
var myArray = [{nr: 'bbc',amount: 3}}, {nr: ccc,amount: 1}];
我有一個具有重複值的對象,我想要計算所有具有相同值並將其刪除的對象。Javascript - 計數並從對象中移除
var myArray = [{nr: 'bbc',}, {nr: 'bbc'}, {nr: 'bbc'}, {nr: ccc}];
從這個數組中我想創建另一個數組,但刪除重複的值並計數它們是這樣的。
var myArray = [{nr: 'bbc',amount: 3}}, {nr: ccc,amount: 1}];
如果你wa nt相同的結構,這將爲你工作
var newArray = [];
for (var i = 0; i < myArray.length; i++) {
var matched = false;
for (var j = 0; j < newArray.length; j++) {
if(myArray[i].nr === newArray[j].nr){
matched = true;
newArray[j].amount++;
break;
}
};
if(!matched)
newArray.push({nr:myArray[i].nr,amount:1});
};
console.log(newArray);
非常感謝我正在尋找的東西。謝謝 – diegoddox 2014-08-29 12:06:04
你也許可以使用更好的格式
var count = {};
for(var i = 0; i < myArray.length; ++i) {
if(typeof count[myArray[i].nr] == 'undefined') {
count[myArray[i].nr] = 0;
}
++count[myArray[i].nr];
}
這傷口產量somehing像:
count = {
bcc: 3,
ccc: 1
};
如果你還需要將其與你指定的結構,則:
var newArray = [];
for(var k in count) {
newArray.push({
nr: k,
amount: count[k]
});
}
@Andy在您的評論之前已經糾正:) – 2014-08-29 11:54:58
謝謝,但我需要一個數組與關鍵和數量在同一個對象。 – diegoddox 2014-08-29 11:56:16
@ user1483534看到我的編輯! – 2014-08-29 12:04:00
而問題是? – 2014-08-29 11:51:59
你爲什麼要存儲爲{nr:'bbc'}而不是隻存儲'bbc'的列表 – Strikeskids 2014-08-29 11:52:06
我需要這樣的東西。 – diegoddox 2014-08-29 11:58:44