我有一个这样的对象:
object["key1"] = "text1"
object["key2"] = "text2"
object["key3"] = "text1"
object["key4"] = "text3"
如何给出具有相同值的元素(例如警告)(text1,text2等)?
在上面的例子中,它应该是object["key1"]
和object["key2"]
。
谢谢
答案 0 :(得分:4)
您可以“反转”您的对象(属性变为值,值变为属性):
var byValue = {};
for (var prop in object) {
if (!(object[prop] in byValue)) {
byValue[object[prop]] = [];
}
byValue[object[prop]].push(prop);
}
这应该产生这种结构:
{
'text1': ['key1', 'key3'],
'text2': ['key2'],
'text3': ['key4']
}
然后,您可以检测具有重复键的那些值:
for (var value in byValue) {
if (byValue[value].length > 1) {
alert(byValue[value].join(', '));
}
}
答案 1 :(得分:0)
答案 2 :(得分:0)
我已对数组进行了排序,然后认为您需要提醒或执行任何操作 功能,每个重复元素只有一次。 警告:排序可能会因阵列的大小而变重 http://jsfiddle.net/SPQJ7/ 上面的小提琴已经设置并使用多个重新元素