拥有如下所示的键值对
var point = [];
point["I1"] = 1000;
point["I2"] = 2000;
point["I3"] = 1000;
point["I4"] = 5000;
point["I5"] = 2000;
point["I6"] = 4000;
想要查找重复值,结果哈希应包含ONLY DUPLICATE值信息。
result["1000"] = " I1,I3";
result["2000"] = "I2,I5";
重复值应该是结果哈希的键。
我对数组进行排序,但无法遍历散列以检查重复值以构建结果散列
答案 0 :(得分:3)
您可以使用循环键点检查所有值。
我稍微改变了你的条款。您可以为Array
设置额外的密钥,但最好使用Object
。
每个值的结果都是一个数组,只需在每个数组上调用toString
即可将其转换为逗号分隔值。
在编辑请求时,要包含only duplicates
您可以再次循环(但这次超过hash
)并获取具有多个结果的内容。
var point = {
I1: 1000,
I2: 2000,
I3: 1000,
I4: 5000,
I5: 2000,
I6: 4000,
};
var hash = Object.create(null);
var result = Object.create(null);
Object.keys(point).forEach(k => {
var grp = point[k];
(grp in hash) ? hash[grp].push(k): (hash[grp] = [k]);
});
for (key in hash)
if (hash[key].length > 1)
result[key] = hash[key].toString();
console.log(hash['1000'].toString());
console.log(hash);
console.log(result);
答案 1 :(得分:1)
获取result["1000"] = ['I1','I3']
而不是var point = {};
point["I1"] = 1000;
point["I2"] = 2000;
point["I3"] = 1000;
point["I4"] = 5000;
point["I5"] = 2000;
point["I6"] = 4000;
var hash = Object.create(null);
Object.keys(point).forEach(k => {
var grp = point[k];
(grp in hash) ? hash[grp] = hash[grp] += ',' + k: (hash[grp] = k);
})
console.log(hash);
:
void* PyArray_GetPtr(PyArrayObject* aobj, npy_intp* ind)