计算与对象数组中的另一个属性相关的唯一属性出现次数

时间:2016-07-04 13:23:36

标签: javascript arrays javascript-objects

在下面的数据集中,我想计算每个bKey的aKey数。 这样每个bKey有多少独特的aKey。就像某个aKey已经发生一样,那么对于那个bKey它就不应该被计算了。

var fData2 = [
  {sex: 'male', bKey: '121', userKey: '04', aKey: '6e5fdb09-319f-4640-b241-2b12d350c027', date: 'Fri Jul 01 06:26:59 UTC 2016', freq: 20, preferenceList: ['Fashion','Business','Sports'], ageGroup: 'LESS_THAN_15'},
  {sex: 'male', bKey: '122', userKey: '01', aKey: '6e5fdb09-319f-4640-b241-2b12d350c027', date: 'Fri Jul 01 11:59:28 UTC 2016', freq: 22, preferenceList: ['Business'], ageGroup: 'BETWEEN_25_35'},
  {sex: 'female', bKey: '123', userKey: '01', aKey: '6e5fdb09-319f-4640-b241-2b12d350c027', date: 'Thu Jun 30 11:59:28 UTC 2016', freq: 26, preferenceList: ['Housing'], ageGroup: 'BETWEEN_35_45'},
  {sex: 'male', bKey: '121', userKey: '03', aKey: '4a73c208-43a8-49d2-87ba-f44691786c96', date: 'Fri Jul 01 06:26:59 UTC 2016', freq: 38, preferenceList: ['Business','Housing','Sports'], ageGroup: 'BETWEEN_25_35'},
  {sex: 'female', bKey: '124', userKey: '03', aKey: '4a73c208-43a8-49d2-87ba-f44691786c96', date: 'Fri Jul 01 11:59:28 UTC 2016', freq: 20, preferenceList: ['Business','Housing','Sports'], ageGroup: 'BETWEEN_45_55'},
  {sex: 'male', bKey: '125', userKey: '01', aKey: '4a73c208-43a8-49d2-87ba-f44691786c96', date: 'Fri Jul 01 11:59:28 UTC 2016', freq: 42, preferenceList: ['Jewels','Kids'], ageGroup: 'LESS_THAN_15'},
  {sex: 'female', bKey: '123', userKey: '02', aKey: '4a73c208-43a8-49d2-87ba-f44691786c96', date: 'Fri Jul 01 06:26:59 UTC 2016', freq: 34, preferenceList: ['Movies'], ageGroup: 'BETWEEN_55_65'},
  {sex: 'female', bKey: '121', userKey: '03', aKey: '4a73c208-43a8-49d2-87ba-f44691786c96', date: 'Fri Jul 01 06:26:59 UTC 2016', freq: 22, preferenceList: ['Culture'], ageGroup: 'BETWEEN_25_35'},
  {sex: 'female', bKey: '124', userKey: '01', aKey: '4a73c208-43a8-49d2-87ba-f44691786c96', date: 'Fri Jul 01 11:59:28 UTC 2016', freq: 115, preferenceList: ['Kids'], ageGroup: 'BETWEEN_35_45'},
  {sex: 'male', bKey: '122', userKey: '02', aKey: '09a703f3-2273-4b25-ba33-24572ffcdf89', date: 'Thu Jun 30 11:59:28 UTC 2016', freq: 19, preferenceList: [], ageGroup: 'BETWEEN_45_55'},
  {sex: 'female', bKey: '121',userKey: '01', aKey: '09a703f3-2273-4b25-ba33-24572ffcdf89', date: 'Thu Jun 30 06:26:59 UTC 2016', freq: 24, preferenceList: [], ageGroup: 'BETWEEN_35_45'}
];

我希望结果在新的对象数组中作为

[ {121: 3},{122: 2},{123: 2},{124: 2},{125: 1} ]

我正在尝试这个 -

var dataSet = {};
fData2.forEach(function (item) {
  dataSet[ item.bKey ] = (dataSet[ item.aKey ] || 0) + 1;
});

console.log(dataSet);

1 个答案:

答案 0 :(得分:3)

您可以使用SET !EXTRACT_TEST_POPUP NO TAG POS=1 TYPE=A ATTR=TXT:Retweet* EXTRACT=TXT TAG POS=1 TYPE=A ATTR=TXT:{{!EXTRACT}} 循环和Object作为可选参数

来执行此操作

forEach