创建一个函数来测试数组是否包含某些内容

发布于 2024-11-16 08:54:32 字数 503 浏览 1 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半世晨晓 2024-11-23 08:54:32

您正在使用等于运算符比较 2 个数组:

arrayData[i]==输入

无论数组的内容如何,​​这始终为 false。您的情况中的等于运算符测试 arraydata[i] 是否与 input 是同一个对象,而不是测试 2 个不同的对象(数组)是否具有相同的内容。

You are comparing 2 arrays using the equal operator:

arrayData[i]==input

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 with input not if 2 different objects (arrays) have the same content.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文