我在Javascript中有以下对象:
Array[11]
0:"532"
1:"text-warning"
2:"51"
3:"text-warning"
4:"16"
5:"muted"
6:"35"
7:"text-warning"
8:"38"
9:"text-warning"
10:"106"
Array[11]
0:"533"
1:"text-warning"
2:"51"
3:"text-warning"
4:"16"
5:"muted"
6:"35"
7:"text-success"
8:"38"
9:"text-warning"
10:"106"
Array[11]
0:"534"
1:"text-warning"
2:"51"
3:"text-warning"
4:"16"
5:"text-warning"
6:"35"
7:"text-success"
8:"38"
9:"text-warning"
10:"106"
我想解析它并查找此数组中是否只存在两个值。
示例:“text-success”或“muted”如果EXIST ONCE返回数组
如果EXIST两次返回null
如果TRUE返回相应的id
在上面的例子中:
第一个数组:为TRUE
Array[11]
0:"532"
1:"muted"
2:"35"
第二个是假的,因为它存在两次
第3名:也是正确的
Array[11]
0:"534"
1:"text-success"
2:"38"
过去几天我一直在努力尝试
我有以下JQUERY:但它只获取Unique值但丢弃其他值:
我还需要第一个id和相应的id:
Array[11]
0:"534" -> main id (needed)
1:"text-success"
2:"38" -> company id (needed)
function singles( array) {
for( var index = 0, single = []; index < array.length; index++ ) {
if(array[index] == "text-success" || array[index] == "muted") {
single.push(array[index]);
}
}
return single;
};
结果或所需的输出:
Array[11]
0:"532",
1:"muted",
2:"35",
第一个值是主要ID, 第二个值是UNIQUE和 第3个值是唯一值的相应ID。
答案 0 :(得分:1)
你可以解决:
- 将对象转换为数组
- 检查重复的元素,然后传递
- 独特元素推入新数组
var obj = {
0:"532",
1:"text-warning",
2:"51",
3:"text-warning",
4:"16",
5:"muted",
6:"35",
7:"text-warning",
8:"38",
9:"text-warning",
10:"106"
};
function restUnique(obj){
var mix = [];
var output= [];
Object.keys(obj).forEach(function(key) {
mix[key]=obj[key];
});
for(var i in mix){
fb=mix.indexOf(mix[i]);
fa=mix.lastIndexOf(mix[i]);
if(fb===fa){output.push(mix[i]);}
}
return output;
}
// usage example:
restUnique(obj); // output : 532,51,16,muted,35,38,106