javascript - js关于检索多维数组中问题
黄舟
黄舟 2017-04-10 15:57:31
[JavaScript讨论组]
var lastDigit = function(str1, str2) {  
    var ar = [0,1,[2,4,8,6],[3,9,7,1],[4,6],5,6,[7,9,3,1],[8,4,2,6],[9,1]],
        base = Number(str1[str1.length-1]),
        zhi = Number(str2);
    
    if (zhi == 0) return 1;
    if (base == 0||1||5||6) return ar[base];
    if (base == 2||3||7||8) return ar[base][zhi%4-1];
    if (base == 4||9) return ar[base][zhi%2-1];
}

上面这段代码本意是想求出两个参数a,b的a^b的最后一位数字的值,可是最后输出的结果显示的都是

Expected: 4, instead got: [4,6]
Expected: 6, instead got: [4,6]
Expected: 9, instead got: [9,1]

有点不太明白原因啊?我明明是使用了两次[]来检索多维数组中的值啊 为什么显示的还是一个数组呢?另外顺带请教下 arr[-1]会得到什么结果呢?是会得到最后数组最后一位的值吗?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
黄舟

改了一下问题的排版,之前的看着着实不太爽 =.=

关于问题,显然 if 里的判断是不对的,需要每个判断然后 || 起来,觉得麻烦可以 switchbreak(不推荐),也可以 obj = {0:true, 1:true, 5:true, 6:true}; if (obj[key]) ...

不过话说为什么要这么求呢,异或算出来然后转成二进制不就知道最后一位是什么了么。

-----补-----

额,好吧,JS里这符号是位操作异或。那可以这样就取到了: Math.pow(a, b) % 10.

然后你说的 arr[-1] 这个会返回 undefined,所有不存在的索引取出来都是这个值,正常索引从 0 开始到 lengh - 1.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号