Skip to content
大纲

统计对象数组中指定属性值重复的位置

语法

js
import { countObjDuplicatePositions } from 'warbler-js';
const result = countObjDuplicatePositions(arr, key);

参数

  • arr (Array) : 需要统计重复元素位置的数组。
  • key (String) : 需要统计重复元素位置的属性值。

返回值

Object : 指定的属性值及其重复的位置。

源码

js
const countObjDuplicatePositions = (arr, key) => {
  const result = {};
  arr.forEach((obj, index) => {
    const value = obj[key];
    if (result[value]) {
      result[value].push(index);
    } else {
      result[value] = [index];
    }
  });
  return result;
};

例子

js
import { countObjDuplicatePositions } from 'warbler-js';
const fruits = [
  { name: 'Grapes', quantity: 2 },
  { name: 'Bananas', quantity: 5 },
  { name: 'Apples', quantity: 10 },
  { name: 'Grapes', quantity: 4 },
  { name: 'Grapes', quantity: 6 },
  { name: 'Bananas', quantity: 5 },
];

const duplicatePositions = countObjDuplicatePositions(fruits, 'name');
console.log(duplicatePositions);

// 输出以下内容

{
    "Grapes": [
        0,
        3,
        4
    ],
    "Bananas": [
        1,
        5
    ],
    "Apples": [
        2
    ]
}

添加版本

1.2.1

Released under the MIT License.