2016-05-12 73 views
-1

console.log()的輸出如下。我想刪除重複的「特徵」,但獲得我們的「價值」。Angularjs:刪除重複的屬性,但得到我們的值

這是我的化妝結果的foreach從下面的代碼:

angular.forEach(checkCharacteristicValue, function(item) { 
    console.log(item) 
    $scope.allCharAndValue.push({ 
    characteristic: item.businessassetcharacteristic.characteristicName, 
    value: item.characteristicValue 
    }); 
}); 

輸出:

Object 1: 
characteristic: "Вид Маса" 
value: "2-ни" 
__proto__: Object 
Object 2: 
characteristic: "Вид Маса" 
value: "4-ни" 
__proto__: Object 
Object 3: 
characteristic: "Вид Маса" 
value: "6-ни" 
__proto__: Object 

我希望看到這樣的結果:{ name:Вид Маса, value:["2-ни", "4-ни", "6-ци"] }

+1

我想你的意思是結果是這樣的:'[{名稱:ВидМаса,值:「2ни」,」 4-ни」, 「6-ци」]}]'。你已經顯示了','分隔的字符串賦值爲不正確 –

+0

@AdityaSingh方括號只在內部,而不在外部。 – cst1992

+0

你的意思是「在裏面,而不是在外面」。 –

回答

2

這是我怎麼會做它。

我使用一個對象來存儲相同的特徵項,並創建一個數組與該鍵的所有值。試試吧,告訴我,如果它是確定你;)

var raw = [{ 
    characteristic: "Вид Маса", 
    value: "2-ни" 
}, 
{ 
characteristic: "Вид Маса", 
value: "4-ни" 
}, 
{ 
characteristic: "Вид Маса", 
value: "6-ни" 
}]; 

// dedup 
var dedup = {}; 
raw.forEach(function(e,i) { 
    if (! dedup.hasOwnProperty(e.characteristic)) { 
     dedup[e.characteristic] = { name : e.characteristic }; 
     dedup[e.characteristic].value = []; 
    } 
    dedup[e.characteristic].value.push(e.value); 
}); 

// flatten to fit requirements 
var flatten = []; 
for(var key in dedup) { 
    flatten.push(dedup[key]); 
} 

console.log(flatten); 
+0

非常感謝,太棒了! –

+0

歡迎您;) –

+0

嘿我有小問題:идМаса:Array [3] 0:「2-İ」 1:「4-İ」 2:「6-ци」我想看到名字:Вид Маса,value:Array [3] 0:「2-」「 1:」4-「」 2:「6-ци」 –