【发布时间】:2013-04-22 16:13:03
【问题描述】:
我可能有初学者 Javascript 问题:
var countries = [
"Bangladesh", "Germany", "Pakistan"];
function testexistence(arr, input) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] != input) {
alert("not exist");
arr.push(input);
break;
} else {
alert("already exist ");
}
}
}
testexistence(countries, "UK");
testexistence(countries, "Pakistan");
testexistence(countries, "UK");
我期望的是:当我再次为“UK”调用该函数时,它显示“已经存在”;但这并没有发生。我不想玩“原型”或定义自己的。我只需要一种解决方案。
我的代码中有一个用例,我必须在数组中插入一个新值,并且在接下来的循环中我必须检查该值;但我最终要插入一个现有值...
为什么我最终要插入现有值以及为什么此检查 (arr[i] != input) 失败?
还请解释一下,为什么上面的代码不能正常工作
【问题讨论】:
-
您可能应该每次都推送输入,而不是“UK”。它不工作吗?
-
testexistence不是该函数的好名称。pushIfUnique或pushUnique怎么样?
标签: javascript arrays closures