2016-05-12 3 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

私が何を意味することは、このように見える結果だと思います)、それを試してみて、それがあなたのためにOKであれば教えてください4-ни」、「6-ци」]]}] 'となります。あなたは値が不正な値に割り当てられた '、'区切り文字列を表示しました –

+0

@AdityaSingh大括弧は内側にあり、外側にはありません。 – cst1992

+0

「外ではなく内部で」とはどういう意味ですか? –

答えて

2

は、これは私がやる方法ですそれ。

私はオブジェクトを使用して同じ特性項目を保存し、そのキーのすべての値を持つ配列を作成します。 `[{名:ВидМаса、値:[「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

):ВидМаса:配列[3] 0: "2-ни" 1: "4-ни" 2: "6-циは" 私は名前を見たい:Вид値:Array [3] 0: "2-ни" 1: "4-ни" 2: "6-ци" –

関連する問題