Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-缩短数学函数_Javascript_Arrays - Fatal编程技术网

JavaScript-缩短数学函数

JavaScript-缩短数学函数,javascript,arrays,Javascript,Arrays,有没有办法缩短这段代码的长度?原因是我将在其他项目和对象中大量使用此代码,我不能像这样在内部调用它:randomize();因为我有不同的阵列 function randomize() { var ra = Math.floor(Math.random()*ar.length=4); document.getElementById('es').innerHTML = ar[ra]; } 但您希望在不调用函数的情况下更多地使用它: function randomize() {document.g

有没有办法缩短这段代码的长度?原因是我将在其他项目和对象中大量使用此代码,我不能像这样在内部调用它:randomize();因为我有不同的阵列

function randomize() {
var ra = Math.floor(Math.random()*ar.length=4);
document.getElementById('es').innerHTML = ar[ra];
}
但您希望在不调用函数的情况下更多地使用它:

function randomize() {document.getElementById('es').innerHTML = ar[Math.floor(Math.random()*ar.length)];}
而不是
Math.floor
,您可以使用
~
获得显微镜下更快的衍射


如果您打算更多地使用它,这将节省一些空间和时间。但如果只有一次,请使用第一个示例。

在不知道您正在做什么的情况下,我建议将相关参数作为参数传递到函数中:

function $(id) {
return document.getElementById(id);
}

function randomize() {
$('es').innerHTML = ar[Math.floor(Math.random()*ar.length)];
}

这段代码是什么:
ar.length=4
?你的意思是这样做的吗?我认为这会导致解析错误。@pimvdb:你能解释一下它的作用吗?我看着它,不知道它是做什么的,也不知道它是如何工作的(或者,如果它真的工作的话)。@David Thomas:对不起,我忽略了
*
。这确实是一个分析错误。@Tremmors没问题,夏洛克!问题是我打错了。谢谢。我不确定整件事以及如何缩短它。但是如何指定数组长度而不指定长度。比如数字。如果我理解正确:我将把它添加到接受的答案中,而不是ar.length>ar[这里的整数值],因为它看起来比1次投票的答案更轻、更快、更好。你如何使这些代码看起来更像C++?你是什么意思?C++和JavaScript非常不同,我想出来了,我看到了我做错了什么。顺便说一句,其他人的代码有什么不好?我很困惑。嗯,我当然有偏见……但你必须评估哪段代码最适合你的需要。试试它们,看看哪一种最适合您的用例和环境。CPU的代码负载是否更少,通过的次数是否更少?但为什么我需要if语句?我在一个按钮中调用它,这可能会带来更大的问题?啊哈。这就像C++一样。比我想象的JavaScript要酷得多。它使用下划线并返回值。而且,我们甚至可以在基准上设置它来测试它的速度!
function randomize(el, array){
    if (!el || !array){
        return false;
    }
    else {
        var ra = Math.floor(Math.random() * array.length=4);
        // please note that I don't understand what's happening in the above line
        // and suspect, quite strongly, that the '=4' was a typo. Correct as necessary
        el.innerHTML = ar[ra];
    }
}

// call:
randomize(document.getElementById('es'), ['1','2']);
/* or:
var el = document.getElementById('es'),
    array = ['one','two'];
randomize(el,array);