js中temp=deck[i], deck[i]=deck[r], deck[r]=temp怎么理解?

JavaScript010

js中temp=deck[i], deck[i]=deck[r], deck[r]=temp怎么理解?,第1张

使用交换律

r为0~i的随机索引

索引为i的数据和索引为r的数据进行交换,循环len个长度进行交换,也就是说交换len次

类似冒泡排序法

var a = [3,2,13], len = a.length

for(var i = 0 i < len i++){

    for(var j = i + 1 j < len j++){

        if(a[i] > a[j]){

            // 把a[i]先存储到tmp中

            var tmp = a[i]

            //然后把a[j]存储到a[i]

            a[i] = a[j]

            //原来的a[i]就是tmp,存储到a[j],这样就换过来了

            a[j] = tmp

        }

    }

}

看来你还不会冒泡排序法

只不过少了个for循环,j换成了随机的r,从而实现了洗牌功能。

方法/步骤

新建一个html文件,命名为test.html,用于讲解JavaScript如何比较两个数组的内容是否相同。

请点击输入图片描述

在js标签内,使用“[]”创建两个数组,分别保存在变量a和变量b中。

请点击输入图片描述

在js标签内,再创建一个变量temp,初始值为1,用于记录数组是否相同。当它为1时,表示两个数组相同,当它为0时,表示两个数组为不相同。

请点击输入图片描述

在js标签内,首先通过length属性分别获得两个数组的长度,使用if语句判断两个数组的长度是否相等,如果不相等,temp变量为0。

请点击输入图片描述

在js标签内,如果两个数组长度相等,则使用for循环遍历两个数组内的每一个元素,通过if语句逐个判断元素是否相等,若有数组元素不相等,temp变量为0。

请点击输入图片描述

在js标签内,使用if判断temp值,当temp为1时,使用alert()方法提示“两个数组相同”,否则,提示“两个数组不相同”。

请点击输入图片描述

在浏览器打开test.html文件,查看实现的效果。

请点击输入图片描述

//--------JS文件代码-------------------------------------------------

var availableTags = [

"0-0-小美",

"0-4-小丽",

"0-5-小王"

]

把以上代码保存为 1.js

然后建立一个1.html

代码如下

<script type="text/javascript" src="1.js"></script>

<script type="text/javascript">

<!--

window.onload = function(){

var temp = ''

for(var i=0i<availableTags.lengthi++){

temp = temp + availableTags[i].replace('-','').replace('-','    ') + '<br>'

}

document.write(temp)

}

-->

</script>