如何使用TypeScript获取Json数组中字段的总数

时间:2017-08-23 09:57:11

标签: json typescript

我有一个Json数组。

 "user": {
            "value": [
                {

                    "customerNo": "1234"

                },
                {
                    "customerNo": "abcd"

                },
                {

                    "customerNo": "1234"

                }

            ]
        }

这里我想得到客户总数。我这样得到它:

json.user.value.length;

输出 3 。但问题是我必须避免重复的客户编号。

这里“1234”有2次。所以我的输出应该是 2 如何使用Typescript。

2 个答案:

答案 0 :(得分:2)

使用lodash

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

以下链接显示了您应用中的How to use lodash

答案 1 :(得分: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);