规则是这样的:
在一个数组里,不知道数组的长度,元素是动态添加的
数组中只能有一个相同的元素可以存在多个,当有一个相同的元素存在多个时别的元素就只能存在一个,不然就报错,谢谢大家
比如:
1,1,2,2这种是错误的
1,1,2这种就是正确的
在一个数组里,不知道数组的长度,元素是动态添加的
数组中只能有一个相同的元素可以存在多个,当有一个相同的元素存在多个时别的元素就只能存在一个,不然就报错,谢谢大家
比如:
1,1,2,2这种是错误的
1,1,2这种就是正确的
var dict = {};
var count = 0;
for (var i = 0; i < arr.length; i++) {
if (dict[arr[i]]) { // 重复出现
count++;
if (count > 1) return false;
}
dict[arr[i]] = true;
}
return true;
}alert([
check([1,1,2,2]), //false
check([1,1,2]), //true
check([1,2,2]), //true
check([2,1,2]), //true
check([1,2,3,4,5,6,7,8,9,1]), //true
check([1,2,3,4,5,6,7,8,9,1,2]) //false
]);//false,true,true,true,true,false
var check=new Array()
for(var i=0;i<aa.lenth;i++){
if(typeos(check[aa.eq(i)])=='undefined'){
check[aa.eq(i)]=aa.eq(i)
}else{
alert("数组中有重复数据")
}
}
通过操作它的属性来判断是否出现过重复。如果没有赋值dict[1]为undefined
dict[1] = true;
赋值后dict[1]为true。这是js对象的特性,可以动态添加属性。
js对象属性以hash表的形式存储,所以访问很快。这也就是最简单对象处理,囧
//IE没有实现Array的indexOf方法,所以自己实现
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(elt/*, from*/) {
var len = this.length;
var from = Number(arguments[1]) || 0;
from = (from < 0) ? Math.ceil(from) : Math.floor(from);
if (from < 0) {
from += len;
} for (; from < len; from++) {
if (from in this && this[from] === elt) {
return from;
}
}
return -1;
};
}
//#End实现indexOf方法 /**
* Class: FunArray
*/
function FunArray() {
this.hasDouble = false;
this.array = new Array();
}FunArray.prototype.add = function (newItem) {
if (this.array.indexOf(newItem) == -1) {
this.array.push(newItem);
} else if (!this.hasDouble) {
this.array.push(newItem);
this.hasDouble = true;
} else {
return false;
}
return true;
};FunArray.prototype.getArray = function () {
return this.array;
}FunArray.prototype.toString = function () {
return this.array.toString();
}//#End Class FunArray测试:
function addLog (msg) {
var logBox = document.getElementById("log");
logBox.innerHTML += "<div>" + msg + "</div>";
}
window.onload = function () {
var fa = new FunArray(); fa.add(1);
fa.add(2);
fa.add(3);
if (fa.add(2)) {
addLog("2添加成功");
} else {
addLog("2添加失败");
} fa.add(4); if (fa.add(1)) {
addLog("1添加成功");
} else {
addLog("1添加失败");
} fa.add(5);
fa.add(4);
fa.add("Java");
fa.add("PHP");
fa.add("Java");
fa.add("Ruby");
addLog("toString: " + fa.toString());
};欢迎指出错误和交流!
var dict = {};
var last;
for (var i = 0; i < arr.length; i++) {
if (dict[arr[i]]) { // 重复出现
if (typeof last != "undefined" && last != arr[i]) return false;
last = arr[i];
}
dict[arr[i]] = true;
}
return true;
}alert([
check([1,1,2,2]), //false
check([1,1,2]), //true
check([1,1,1,2]), //true
check([1,2,1,3,1]), //true
check([1,2,1,3,2]), //false
]);
清洁工,你写了8年Delphi,写了几年js啊?
<script type="text/javascript">
function check(arr) {
var dict = {};
var count = 0;
//统计每个元素出现次数
for (var i = 0; i < arr.length; i++) {
if (dict[arr[i]]) { // 重复出现
dict[arr[i]]++;
}
else{
dict[arr[i]] = 1;
}
}
//判断元素出现次数>1的元素个数
for(ob in dict){
if(dict[ob]>1){
count++;
}
}
if(count>1){
return false;
}
return true;
}
alert([
check([1,1,2,2]), //false
check([1,1,2]), //true
check([1,2,2]), //true
check([2,1,2]), //true
check([1,2,3,4,5,6,7,8,9,1]), //true
check([1,2,3,4,5,6,7,8,9,1,2]), //false
check([1,1,1,1,1,2,3]),//true
check([1,2,3]) //true
]);
</script>
return !/(?:^|,)(\d*,)\1+(?:\d*,)*(\d*,)\2+/.test([].concat(arr).sort()+",")
}alert([
check([1,1,2,2]), //false
check([1,1,1,2]), //true
check([1,1,2]), //true
check([1,2,2]), //true
check([2,1,2]), //true
check([1,2,3,4,5,6,7,8,9,1]), //true
check([1,2,3,4,5,6,7,8,9,1,2]) //false
]);
return !/\b(\d+)(,\1\b)+.*\b(\d+)(,\3\b)+/.test(arr.sort());
}alert([
check([1,1,2,2]), //false
check([1,1,1,2]), //true
check([1,1,2]), //true
check([1,2,2]), //true
check([2,1,2]), //true
check([1,2,3,4,5,6,7,8,9,1]), //true
check([1,2,3,4,5,6,7,8,9,1,2]), //false
check([1,2,2,2,2]) //false
].join("\n"));
function check(arr) {
var m = ("" + arr.sort()).match(/\b(\d+)(,\1\b)+/g);
return !(m && m.length > 1);
}alert([
check([1,1,2,2]), //false
check([1,1,1,2]), //true
check([1,1,2]), //true
check([1,2,2]), //true
check([2,1,2]), //true
check([1,2,3,4,5,6,7,8,9,1]), //true
check([1,2,3,4,5,6,7,8,9,1,2]), //false
check([1,2,2,2,2]) //true
].join("\n"));
var i;
var=j;
var value;
var arr = new Array();
for(i=0;i<arr.length-1;i++){
for(j=i+1;j<arr.length;j++){
if((arr[i]=arr[j])&&(arr[i]!=value)){
value=arr[i];
count++;
}
}
}if(count>1){
alert("错了");
}