javascript - JS数组作为参数的问题
伊谢尔伦
伊谢尔伦 2017-04-11 11:35:52
[JavaScript讨论组]
    <script>
 window.onload = function() {
    function fun(a) { // 这里改一下a[1]作为参数呢?

        for(i = 0; i < a.length; i++) {
            alert(a[i]);
        }
    }

    var a = [1, 2, 3]
    fun(a);
}
        </script>

这个代码没问题,但是我把fun(a)改了,a[0或1或2]就出错了为什么呢?如果我只想把这个数组的
一部分作为参数呢?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
伊谢尔伦

fun(a.slice(0,1)); //0, 1为数组索引
或者传入数组,在里面slice

黄舟

建议用一楼的方法,用slice是不会改变原数组的,只要在数组中找到你需要的元素,用slice取出子集作为参数

伊谢尔伦

方法要求的参数是个数组,你必须得传进去一个数组。想要传进去一部分也要把那部分包装成数组。a[1]可能不是数组,所以不行。但是如果[a[1]]就可以了。要不就像楼上那种写法,截取数组。

高洛峰

@王小强 的方法不错,也可以考虑下面这种方式:

function fun(a) {
    if(Array.isArray(a)) {
        a.map(function(i) {
            alert(i);
        });
    }else {
        alert(a);
    }
}
PHPz

参数本身是不限制你传什么类型的,至于你的代码会出错,那是因为函数体内部的代码的问题。

比如你传了 a[0] ,也就相当于传了一个 1

那这时候来看后面要执行的代码,一个for循环,循环结束条件是 i < 1.length ,

你觉得这里会不会出错?

如果你又想传数组,又想可以传数组的元素,那你的代码就要改,比如多加一层判断,判断参数类型。

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

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