创建一个函数来测试数组是否包含某些内容
openList = Array([1,1], [2,3], [4,5]);
containss = function (input, arrayData, tellID) {
for (i = 0; i < arrayData.length; i++) {
if (arrayData[i] == input) {
if (tellID) {
return i;
} else {
return true;
}
}
}
return false;
}
trace(containss([2,3], openList, true));
当 openList 包含 2,3 时,此代码返回 false。当我添加trace(arrayData[i])时,我得到1,1 2,3 4,5,当我执行trace(input)时,我得到2,3。怎么了?谢谢
openList = Array([1,1], [2,3], [4,5]);
containss = function (input, arrayData, tellID) {
for (i = 0; i < arrayData.length; i++) {
if (arrayData[i] == input) {
if (tellID) {
return i;
} else {
return true;
}
}
}
return false;
}
trace(containss([2,3], openList, true));
This code returns false when openList contains 2,3. When I add trace(arrayData[i]), I get 1,1 2,3 4,5 and when I do trace(input) I get 2,3. What is wrong? Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在使用等于运算符比较 2 个数组:
无论数组的内容如何,这始终为 false。您的情况中的等于运算符测试
arraydata[i]
是否与input
是同一个对象,而不是测试 2 个不同的对象(数组)是否具有相同的内容。You are comparing 2 arrays using the equal operator:
This will always be false, no matter the contents of the arrays. The equal operator in your case tests if
arraydata[i]
is the same object withinput
not if 2 different objects (arrays) have the same content.