javascript:获取关联数组中包含重复数据的键

标签 javascript arrays key

我有一个 JavaScript 关联数组。它将动态填充。

我想找到包含重复数据/值的键。

为了简单起见,它看起来像这样。

var p =   { };
 p =
    {
        "p1": "value1",
        "p2": "value2",
        "p3": "value3",
        "p4": "value2",
        "p5": "value3",
        "p6": "value5"
    };

我该怎么做。

这是 js fiddle 。

jsfiddle

除了使用hasOwnProperty还有其他方法吗?

有什么想法可以让这项工作成功吗?

最佳答案

var p =
    {
        "p1": "value1",
        "p2": "value2",
        "p3": "value3",
        "p4": "value2",
        "p5": "value3",
        "p6": "value5"
    };

var q = {};
var keys = Object.keys(p);
for (var i = 0; i < keys.length; i++) {
    var currentKey = keys[i];
    var newKey = p[currentKey];
    if (q[newKey] === undefined){
        q[newKey] = [];
    }
    q[newKey].push(currentKey);
}

这会给你一个看起来像这样的对象:

{
  "value1": ["p1"],
  "value2": ["p2","p4"],
  "value3": ["p3","p5"],
  "value5": ["p6"]
}

关于javascript:获取关联数组中包含重复数据的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18906183/

相关文章:

javascript - 使用 Storybook 解决组件中的绝对/别名导入问题

javascript - 在 angular.js 中解析 JSONP $http.jsonp() 响应

javascript - 从输入保存和加载图像

javascript - 如何在android上获取javascript生成的html

java - 如何查看 int 数组中的元素是否为空?

linux - ncurses 的 getch() 不起作用

php - 检查所有数组项是否为空 PHP

java - for 循环中数组元素的减法 (java.lang.ArrayIndexOutOfBoundsException)

c - 如何提供 OpenSSL 随机数据以用于 ECDSA 签名?

ios - 如何从 NSManagedObject 属性派生核心数据属性键?