2017-08-23 5 views
0

私はJson配列を持っています。TypeScriptを使用してJson Array内のフィールドの総数を取得する方法

"user": { 
      "value": [ 
       { 

        "customerNo": "1234" 

       }, 
       { 
        "customerNo": "abcd" 

       }, 
       { 

        "customerNo": "1234" 

       } 

      ] 
     } 

ここでは、顧客の総数を取得したいと考えています。私はこのようにそれを取得しています:

json.user.value.length; 

そして出力はです。しかし、問題は重複する顧客番号を避けなければならないことです。

ここに「1234」が2回あります。だから私の出力は であるべきです。Typescriptを使ってこれを行う方法。

+1

@Moriarty:私は 'angular'タグは無関係だったことを確認していない - 角度で' forEach'デバイスを使用している上にコメントがありました(今「私はドンの理由から、削除知っている)。 – halfer

+0

@halferそれを見たことはありませんが、質問が変わったときに再度追加する必要がある場合は問題ありません。 –

答えて

2

使用lodash:ここ

var uniqueCustomer = _.uniqBy(json.user.value, 'customerNo'); 
var length = uniqueCustomer.length 

アプリでHow to use lodashを示したリンクです。

0

Array.reduceを使用して、一意の顧客をカウントできます。

const data = { 
 
    "user": { 
 
     "value": [ 
 
      { 
 

 
       "customerNo": "1234" 
 

 
      }, 
 
      { 
 
       "customerNo": "abcd" 
 

 
      }, 
 
      { 
 

 
       "customerNo": "1234" 
 

 
      } 
 

 
     ] 
 
    } 
 
}; 
 

 
function getCustomerCount(arr) { 
 
    let tmp = []; 
 
    return arr.reduce((acc, curr) => { 
 
    if(!tmp.includes(curr.customerNo)) { 
 
     return tmp.push(curr.customerNo); 
 
    } 
 
    return acc; 
 
    }, 0); 
 
} 
 

 
let customers = data.user.value; 
 
let customerCount = getCustomerCount(customers); 
 

 
console.log(customerCount);

関連する問題