JavaScript闯关题(第二部分)

JavaScript if语句

If 语句用于在代码中做条件判断。关键字 if 告诉 JavaScript 在小括号中的条件为真的情况下去执行定义在大括号里面的代码。这种条件被称为 Boolean 条件,因为他们只可能是 true(真)或 false(假)。

当条件的计算结果为 true,程序执行大括号内的语句。当布尔条件的计算结果为 false,大括号内的代码将不会执行。

伪代码

if(条件为真){

语句被执行

}

示例

function test(myCondition) {

if (myCondition) {

 return "It was true";

}

return "It was false";

}

test(true);// returns "It was true"

test(false); // returns "It was false"

当 test 被调用,并且传递进来的参数值为 true,if 语句会计算 myCondition 的结果,看它是真还是假。如果条件为 true,函数会返回 "It was true"。当 test 被调用,并且传递进来的参数值为 false,myCondition为 true,并且不执行大括号后面的语句,函数返回 "It was false"。

任务:在函数内部创建一个 if 语句,如果该参数 wasThatTrue 值为 true,返回 "That was

true",否则,并返回 "That was false"。

JavaScript else语句

当if语句的条件为真,大括号里的代码执行,那如果条件为假呢?

这时候需要写一个else语句,当条件为假时执行相应的代码。

if (num > 10) {

return "Bigger than 10";

} else {

return "10 or Less";

}

任务:结合多个if语句为一个if/else语句。

JavaScript else if语句

如果你有多个条件语句,你可以通过else if语句把 if语句链起来。

if (num > 15) {

return "Bigger than 15";

} else if (num < 5) {

return "Smaller than 5";

} else {

return "Between 5 and 15";

}

任务:使用else if实现同样的效果。

JavaScript if、else if语句中代码的执行顺序

if、else

if语句中代码的执行顺序是很重要的。

在条件判断语句中,代码的执行顺序自上而下,所以必须区分清楚代码的执行顺序。

这有两个例子。

第一个例子:

function foo(x) {

if (x < 1) {

return "Less than one";

} else if (x < 2) {

return "Less than two";

} else {

return "Greater than or equal to two";

}

}

第二个例子更改了代码的执行顺序:

function bar(x) {

if (x < 2) {

return "Less than two";

} else if (x < 1) {

return "Less than one";

} else {

return "Greater than or equal to two";

}

}

这两个函数看起来相似,实则大不相同。

foo(0) // "Less than one"

bar(0) // "Less than two"

任务:更改函数的逻辑顺序以便通过所有的测试用例。

JavaScript 同时使用if、else if 语句

if/else 语句串联在一起可以实现复杂的逻辑,这是多个if/else if 语句串联在一起的伪代码:

if (condition1) {

statement1

} else if (condition2) {

statement2

} else if (condition3) {

statement3

. . .

} else {

statementN

}

任务

把if/else

if语句串联起来实现下面的逻辑:

num < 5- return"Tiny"

num <10-return "Small"

num < 15-return "Medium"

num < 20-return "Large"

num >= 20- return"Huge"

Javascript 逻辑运算综合实战

在高尔夫golf游戏中,每个洞都有自己的标准杆数par,代表着距离。根据你把球打进洞所挥杆的次数strokes,可以计算出你的高尔夫水平。

函数将会传送2个参数,分别是标准杆数par 和 挥杆次数strokes ,根据下面的表格返回正确的水平段位。

StrokesReturn

1"Hole-in-one!"

<= par - 2"Eagle"

par - 1"Birdie"

par"Par"

par + 1"Bogey"

par + 2"Double  Bogey"

>= par + 3"Go  Home!"

par 和 strokes 必须是数字而且是正数。

JavaScript 使用switch语句进行多选项选择

如果你有非常多的选项需要选择,可以使用switch语句。根据不同的参数值会匹配上不同的case分支,语句会从第一个匹配的case分支开始执行,直到碰到break就结束。

这是一个伪代码案例:

switch (num) {

case value1:

statement1;

break;

case value2:

statement2;

break;

...

case valueN:

statementN;

break;

}

测试case 值使用严格等于,break关键字告诉javascript停止执行语句。如果没有break关键字,下一个语句会继续执行。

任务:写一个测试 val的switch语句,并且根据下面的条件来设置不同的answer:

1-"alpha"

2-"beta"

3-"gamma"

4-"delta"

JavaScript 在switch语句中添加default语句

在switch 语句中你可能无法用case来指定所有情况,这时你可以添加default语句。当再也找不到case匹配的时候default语句会执行,非常类似于if/else组合中的else语句。

default语句应该是最后一个case。

switch (num) {

case value1:

statement1;

break;

case value2:

statement2;

break;

...

default:

defaultStatement;

}

任务:写一个根据下面的条件来设置answer的switch语句:

"a"-"apple"

"b"-"bird"

"c"-"cat"

default-"stuff"

JavaScript switch语句中的多个相同选项判断

如果switch语句中的case分支的break 语句漏掉了,后面的 case语句会一直执行直到遇到break。如果你有多个输入值和输出值一样,可以试试下面的switch语句:

switch(val) {

case 1:

case 2:

case 3:

result = "1, 2, or 3";

break;

case 4:

result = "4 alone";

}

分支1、2、3将会产生相同的输出结果。

任务:写一个根据下面的范围来设置answer 的switch语句:1-3-"Low"

4-6-"Mid"

7-9-"High"

提示 你需要为每一个包含数字的范围准备一个answer语句。

JavaScript 使用switch语句替换串联的if、else if语句

如果你有多个选项需要选择,switch 语句写起来会比多个串联的if/if

else语句容易些,譬如:

if (val === 1) {

answer = "a";

} else if (val === 2) {

answer = "b";

} else {

answer = "c";

}

可以被下面替代:

switch (val) {

case 1:

answer = "a";

break;

case 2:

answer = "b";

break;

default:

answer = "c";

}

任务:把串联的 if/if else 语句改成 switch 语句。

JavaScript 直接在函数中返回boolean值

所有的比较操作符返回的都是一个boolean值,要么是 true 要么是false 。

使用 if/else语句来做比较然后返回true或false已经成为大家的共识:

functionisEqual(a,b) {

if (a === b) {

return true;

} else {

return false;

}

}

因为=== 总是返回 true 或 false,所以我们可以直接返回比较的结果:

functionisEqual(a,b) {

return a === b;

}

任务:移除isLess函数的if/else语句但不影响函数的功能。

JavaScript 在函数中使用return跳出函数

当代码执行到return语句时,函数返回一个结果就结束运行了,return后面的语句根本不会执行。

举个栗子

function myFun() {

console.log("Hello");

return "World";

console.log("byebye")

}

myFun();

上面的代码输出"Hello"到控制台、返回 "World",但没有输出"byebye",因为函数遇到return语句就退出了。

任务:修改函数abTest当a或b小于0时,函数立即返回一个undefined并退出。

提示记住undefined,是一个关键字,而不是一个字符串。

JavaScript 条件判断算法综合实战

在赌场21点游戏中,玩家可以通过计算牌桌上已经发放的卡牌的高低值来让自己在游戏中保持优势,这就叫21点算法

根据下面的表格,每张卡牌都分配了一个值。如果卡牌的值大于0,那么玩家应该追加赌注。反之,追加少许赌注甚至不追加赌注。

Count ChangeCards

+12, 3, 4, 5, 6

07, 8, 9

-110, 'J', 'Q', 'K','A'

你需要写一个函数,实现21点算法,它根据参数 card的值来递增或递减变量count,函数返回一个由当前count和 "Bet"(count>0)或"Hold"(count<=0) 拼接的字符串。注意count和"Bet" 或 "Hold"应该用空格分开。

例如:

"-3 Hold"

"5 Bet"

提示既然card的值为7、8、9时,count值不变,那我们就可以忽略这种情况。

JavaScript 对象操作

你之前可能听说过对象 object 。

对象和数组很相似,数组是通过索引来访问和修改数据,对象是通过属性来访问和修改数据的。

这是一个示例对象:

var cat = {

"name": "Whiskers",

"legs": 4,

"tails": 1,

"enemies": ["Water", "Dogs"]

};

对象适合用来存储结构化数据,就和真实世界的对象一模一样,比如一只猫。

任务:创建一个叫做myDog的对象,它里面有这些属性: 名称"name"、 腿"legs", 尾巴"tails"、朋友"friends"。

你可以设置对象属性为任何你想要的值,只要 "name" 是字符串、 "legs" 和 "tails" 是数字、"friends" 是数组。

JavaScript 使用点操作符.读取对象属性

有两种方式访问对象属性,一个是点操作符(.),一个是中括号操作符([])。

当你知道属性的名称的时候,使用点操作符。

这是一个使用点操作符读取对象属性的例子:

var myObj = {

prop1: "val1",

prop2: "val2"

};

var prop1val = myObj.prop1; // val1

var prop2val = myObj.prop2; // val2

任务:通过点操作符读取对象testObj,把hat的属性值赋给变量hatValue,把shirt的属性值赋给shirtValue。

JavaScript 使用[]读取对象属性

第二种访问对象的方式就是中括号操作符([]),如果你想访问的属性的名称有一个空格,这时你只能使用中括号操作符([])。

这是一个使用中括号操作符([])读取对象属性的例子:

var myObj = {

"Space Name": "Kirk",

"More Space": "Spock"

};

myObj["Space Name"]; // Kirk

myObj['More Space']; // Spock

提示:属性名称中如果有空格,必须把属性名称用单引号或双引号包裹起来。

任务:用中括号操作符读取对象testObj的属性"an entree"值和属性"the drink"值。

JavaScript 使用变量访问对象属性

中括号操作符的另一个使用方式是用变量来访问一个属性。当你需要遍历对象的属性列表或查表时,这种方式极为有用。

这有一个使用变量来访问属性的例子:

var someProp ="propName";

var myObj = {

propName: "Some Value"

}

myObj[someProp]; // "Some Value"

还有更多:

var myDog ="Hunter";

var dogs = {

Fido: "Mutt",

Hunter:"Doberman",

Snoopie:"Beagle"

}

var breed = dogs[myDog]; // "Hunter"

console.log(breed)// "Doberman"

提示:当我们通过变量名访问属性的时候,不需要给变量名包裹引号。因为实际上我们使用的是变量的值,而不是变量的名称。

任务:使用变量playerNumber,通过中括号操作符找到testObj中的16。

JavaScript 更新对象属性

当你创建了一个对象后,你可以用点操作符或中括号操作符来更新对象的属性。

举个例子,让我们看看 ourDog:

var ourDog = {

"name": "Camper",

"legs": 4,

"tails": 1,

"friends": ["everything!"]

};

让我们更改它的名称为 "Happy Camper",这有两种方式来更新对象的name属性:

ourDog.name = "Happy Camper";

ourDog["name"] = "Happy Camper";

任务:更新 myDog 对象的name属性,让它的名字从"Coder" 变成 "Happy Coder"。

JavaScript 给对象添加属性

你也可以像更改属性一样给对象添加属性。

看看我们是如何给ourDog添加 "bark"属性:

ourDog.bark = "bow-wow";

或者

ourDog["bark"] = "bow-wow";

任务:给myDog添加一个"bark" 属性,设置它的值为狗的声音,例如:"woof"。

JavaScript 删除对象属性

我们同样可以删除对象的属性,例如:

delete ourDog.bark;

任务:删除myDog对象的"tails"属性。

JavaScript 使用对象进行查找值

对象和字典一样,可以用来存储键/值对。如果你的数据跟对象一样,你可以用对象来查找你想要的值,而不是使用switch或if/else语句。当你知道你的输入数据在某个范围时,这种查找方式极为有效。

这是简单的反向字母表:

var alpha = {

1:"Z",

2:"Y",

3:"X",

4:"W",

...

24:"C",

25:"B",

26:"A"

};

alpha[2]; // "Y"

alpha[24]; // "C"

var value = 2;

alpha[value]; // "Y"

任务:把switch语句转化为一个叫做lookup的对象。

JavaScript 检查对象属性

有时检查一个对象属性是否存在是非常有用的,我们可以用.hasOwnProperty(propname)方法来检查对象是否有该属性。如果有返回true,反之返回 false。

举例

var myObj = {

top: "hat",

bottom: "pants"

};

myObj.hasOwnProperty("top");// true

myObj.hasOwnProperty("middle"); // false

任务:修改函数checkObj检查myObj是否有checkProp属性,如果属性存在,返回属性对应的值,如果不存在,返回 "Not Found"。

注意:如果你需要通过变量来访问对象的属性值,请用中括号操作符,点操作符不支持变量。

JavaScript JSON操作

JavaScript

Object Notation 简称 JSON,它使用JavaScript对象的格式来存储数据。JSON是灵活的,因为它允许 数据结构 是 字符串,数字,布尔值,字符串,和 对象 的任意组合。

这里是一个JSON对象的示例:

var ourMusic = [

{

"artist": "Daft Punk",

"title": "Homework",

"release_year": 1997,

"formats": [

"CD",

"Cassette",

"LP" ],

"gold": true

}

];

这是一个对象数组,并且对象有各种关于专辑的 详细信息。它也有一个嵌套的 formarts的数组。附加专辑记录可以被添加到数组的最上层。

提示 数组中有多个 JSON 对象的时候,对象与对象之间要用逗号隔开。

任务:添加一个新专辑到 myMusic 的JSON对象。添加 artist 和 title 字符串,release_year 数字和 formats 字符串数组。

JavaScript 获取JSON属性值

通过串联起来的点操作符或中括号操作符来访问JSON对象的嵌套属性。

下面是一个嵌套的JSON对象:

var ourStorage = {

"desk": {

"drawer": "stapler"

},

"cabinet": {

"top drawer": {

"folder1": "a file",

"folder2": "secrets"

},

"bottom drawer": "soda"

}

}

ourStorage.cabinet["top drawer"].folder2;// "secrets"

ourStorage.desk.drawer; // "stapler"

任务

检索JSON对象 myStorage 中嵌套属性 glove box 的值。因为属性的名字带有空格,请使用中括号操作符来访问属性的值。

JavaScript 获取JSON数组值

正如我们在前面的例子所见,JSON对象可以嵌套对象和数组。与访问嵌套对象一样,用中括号操作符同样可以访问嵌套数组。

下面是如何访问嵌套数组的例子:

var ourPets = {

"cats": [

"Meowzer",

"Fluffy",

"Kit-Cat"

],

"dogs": [

"Spot",

"Bowser",

"Frankie"

]

};

ourPets.cats[1]; // "Fluffy"

ourPets.dogs[0]; // "Spot"

任务:使用点操作符和中括号操作符来检索变量 myPlants 的第二棵树。

JavaScript JSON集合操作

右边有一个JSON对象,代表着你的专辑集。每一张专辑由一个唯一的id标识,并具有多种属性。但并非所有的专辑都有完整的信息。

写一个函数,它有个三个参数,id、prop、 value。

如果 value !='' 而且prop != 'tracks',collectionCopy[id][prop]=value;。

如果 value !='' 而且prop == 'tracks',collectionCopy[id][prop].push(value);。

如果 value == '' ,delete collectionCopy[id][prop];。

谨记:函数返回的永远是整个对象。

提示 使用中括号操作符来访问对象的变量属性

JavaScript 使用for语句循环迭代

一个条件语句只能执行一次代码,而通过一个循环语句你可以多次执行代码。

JavaScript中最常见的循环就是“for循环”因为它可以允许特定次数的循环。

for循环中的三个表达式用分号隔开:

for ([初始化]; [条件判断]; [计数器])

初始化语句只会在执行循环开始之前执行一次。它通常用于定义和设置你的循环变量。

条件判断语句会在每一轮循环的开始执行,只要条件判断为 true 就会继续执行循环。当条件为 false的时候,循环将停止执行。这意味着,如果条件在一开始就为 false,这个循环将不会执行。

计数器是在每一轮循环结束时执行,通常用于递增或递减。

在下面的例子中,先初始化i = 0,条件 i < 5 为真,进入第一次循环,执行大括号里的代码,第一次循环结束。递增i的值,条件判断,就这样依次执行下去,直到条件判断为假,整个循环结束。

var ourArray = [];

for (var i = 0; i < 5; i++) {

ourArray.push(i);

}

最终 ourArray 的值为 [0,1,2,3,4].

任务:使用 for 循环把从 1 到 5 添加进 myArray 中。

JavaScript 使用for语句循环按奇数顺序迭代

for循环不必按照顺序来迭代,通过更改我们的 表达式,我们可以按照偶数顺序来迭代。

初始化 i = 0,当 i < 10 的时候继续循环。

i += 2 让 i 每次循环之后增加2。

var ourArray = [];

for (var i = 0; i < 10; i += 2) {

ourArray.push(i);

}

循环结束后,ourArray 的值为 [0,2,4,6,8]。

让我们改变 表达式,这样我们可以用奇数来数。

任务:写一个 for 循环,把从1到9的奇数添加到 myArray。

JavaScript 使用for循环逆向迭代

for循环也可以逆向迭代,只要我们定义好合适的条件。

为了能够从后往前两两倒数,我们需要改变我们的 初始化,条件判断 和 计数表达式。

我们让 i = 10,并且当 i > 0 的时候才继续循环。我们使用 i-=2 来让 i 每次循环递减 2。

var ourArray = [];

for (var i=10; i > 0; i-=2) {

ourArray.push(i);

}

循环结束后,ourArray 的值为 [10,8,6,4,2]。

让我们改变 初始化 和 计数表达式,这样我们就可以按照奇数从后往前两两倒着数。

任务:使用一个 for 循环,把9到1的奇数添加进 myArray。

JavaScript 使用for循环迭代输出数组

JavaScript中的常见任务是迭代数组的内容,一种方法是使用for循环。

下面的代码将输出数组arr 的每个元素到控制台:

var arr =[10,9,8,7,6];

for (var i=0; i < arr.length; i++) {

 console.log(arr[i]);

}

记住数组的索引从零开始的,这意味着数组的最后一个元素的下标是:数组的长度 - 1。我们这个循环的 条件 是 i < arr.length,当 i 的值为 长度-1 的时候循环就停止了。

任务:声明并初始化一个变量 total 为 0。使用 for 循环,使得 total 的值为 myArr 的数组中的每个元素的值的总和。

JavaScript 循环语句综合实战

如果你有一个二维数组,可以使用嵌套循环的逻辑,先遍历外面的数组,再遍历里面的子数组。下面是一个例子:

var arr = [

[1,2], [3,4], [5,6]

];

for (var i=0; i < arr.length; i++) {

for (var j=0; j < arr[i].length; j++) {

console.log(arr[i][j]);

}

}

这样就可以一次输出 arr 中的每个子元素。请注意,对于内部循环,我们可以通过 arr[i] 的 .length 来获得子数组的长度,因为 arr[i] 的本身就是一个数组。

任务:修改函数 multiplyAll,以获得 arr 内部数组的每个数字相乘的结果 product。

JavaScript 使用while语句循环迭代

您可以使用循环多次运行相同的代码;

另一种类型的 JavaScript 循环被称为while循环,因为它运行“while”一个指定的条件为真,一旦该条件不再为真,就停止

var ourArray =[];   

var i = 0;   

while(i < 5) {   

ourArray.push(i);   

i++;   

}

让我们尝试通过将值推送到数组来获得一个while循环

任务:通过一个 while 循环,把从 0 到 4 的值添加到 myArray 中。

JavaScript 使用循环语句查找通讯录

我们有一个联系人列表,里面存储着不同联系人的数组对象。

函数 lookUpProfile 有两个预定义参数:firstName值和prop属性 。

该函数应检查firstName是实际联系人的firstName,给定的属性(prop)是该联系人的属性。

如果它们都存在,函数返回prop属性对应的值。

如果firstName 值不存在,返回 "No such contact"。

如果prop 属性不存在,返回 "No such property"。

JavaScript 使用random()生成随机小数

随机数对于创建随机行为很有用,计算机的行为只有两种:确定性和随机性。

而随机数最适合用来创建这种随机行为。

Math.random()用来生成一个在0(包括0)到1(不包括1)之间的随机小数,因此Math.random()可能返回0但绝不会返回1。

提示随后的函数都会在return执行前调用,所以我们可以直接返回Math.random()的值。

任务:更改randomFunction 来生成一个随机数取代 0。

JavaScript 使用random()生成随机数

很好,我们可以生成随机的小数,但如果我们使用它来生成随机的整数,这将是更有用的机整数。

[if !supportLists]1.   [endif]用 Math.random() 生成一个随机小数。

[if !supportLists]2.    [endif]把这个随机小数乘以 20。

[if !supportLists]3.    [endif]用 Math.floor() 向下取整 获得它最近的整数。

记住 Math.random() 永远不会返回 1。同时因为我们是在用 Math.floor() 向下取整,所以最终我们获得的结果不可能有 20。这确保了我们获得了一个在0到19之间的整数。

把操作连缀起来,代码类似于下面:

Math.floor(Math.random() * 20);

我们先调用 Math.random(),把它的结果乘以20,然后把上一步的结果传给 Math.floor(),最终通过向下取整获得最近的整数。

任务:生成一个 0 到 9之间的随机整数。

JavaScript 使用random()在一个范围内生成随机数

我们之前生成的随机数是在0到某个数之间,现在我们可以生成一个落在两个特定数字范围内的随机数间。

我们需要定义一个最小值和一个最大值。

下面是我们将要使用的方法,仔细看看并尝试理解这行代码正在干什么:

Math.floor(Math.random() * (max - min + 1)) + min

任务:创建一个叫randomRange的函数,参数为myMin和myMax,返回一个在myMin(包括myMin)和myMax(包括myMax)之间的随机数。

JavaScript 使用正则表达式操作字符串

Regular expressions 正则表达式被用来根据某种匹配模式来寻找strings中的某些单词。

例如:如果我们想要找到字符串The dog chased the cat中单词 the,我们可以使用下面的正则表达式: /the/gi

我们可以把这个正则表达式分成几段:

/ 是这个正则表达式的头部

the 是我们想要匹配的模式

/ 是这个正则表达式的尾部

g 代表着 global(全局),意味着返回所有的匹配而不仅仅是第一个。

i 代表着忽略大小写,意思是当我们寻找匹配的字符串的时候忽略掉字母的大小写。

任务:用全局、忽略大小写的模式选取字符串 testString中所有的单词 and。

你可以尝试把 . 替换成 and。

JavaScript 使用正则表达式选取数值

我们可以在正则表达式中使用特殊选择器来选取特殊类型的值。

特殊选择器中的一种就是数字选择器\d,意思是被用来获取一个字符串的数字。

在JavaScript中, 数字选择器类似于: /\d/g。

在选择器后面添加一个加号标记(+),例如:/\d+/g,它允许这个正则表达式匹配一个或更多数字。

尾部的g是'global'的简写,意思是允许这个正则表达式找到所有的匹配而不是仅仅找到第一个匹配。

任务:用 \d 选择器来选取字符串中的所有数字,允许一个或多个数字的可能性。

JavaScript 使用正则表达式选取空白字符

我们也可以使用正则表达式选择器 \s 来查找一个字符串中的空白。

空白字符有 " " (空格符)、\r (回车符)、\n (换行符)、\t (制表符) 和 \f(换页符)。

空白正则表达式类似于:

/\s+/g

任务:用 \s 选取句子中的所有空白字符。

JavaScript 使用正则表达式反转匹配

你可以用正则表达式选择器的大写版本来反转任何匹配(相反意思)。

例如:\s 匹配任何空白字符,\S 匹配任何非空白字符。

任务:用 /\S/g 来匹配字符串testString中的所有非空白字符。

JavaScript 综合运用开发老虎机游戏

现在把我们之前的所学的知识点结合起来完成一个老虎机游戏。

首先我们生成3个随机数,范围在1到3之间。

分别用 slotOne、slotTwo、slotThree来存储着3个随机数。

用我们之前的所学来生成随机数):

Math.floor(Math.random() * (3 - 1 + 1)) + 1;

JavaScript 进一步完善小游戏项目

现在我们的老虎机每次生成3个随机数,我们得去检查随机数是否全部相等的情况。

如果全部相等,我们应该提示用户他们赢了,并返回中奖号码,否则我们应该返回null。

null 是JavaScript中的一种数据类型,意味着空。

当这3个随机数相等的时候,判定用户赢。让我们创建一个if 语句,用多个条件按顺序来检查它们是否相等。类似于:

if (slotOne === slotTwo && slotTwo === slotThree){

  return slotOne;

} else {

}

当3个随机数都一样的时候,我们把 "It's A Win" 追加到class logger的html中。

JavaScript 让小游戏项目运作起来

让我们用 jQuery 选择器 $(".slot") 获得所有老虎机。

一旦获取到所有老虎机,我们可以通过中括号操作符获取到每一个老虎机:

$($(".slot")[0]).html(slotOne);

jQuery将会获取到第一个老虎机,并更新它的HTML为正确的数字。

任务:分别更新每个老虎机上的HTML为对应的数字。

JavaScript 为小游戏项目添加图片

现在给我们的老虎机加点图片。

我们已经为你准备好了图片images,我们可以通过不同的索引来获取每个图片。

现在让我们设置第一个老虎机根据随机数来显示一张图片:

$($('.slot')[0]).html('<img src = "' + images[slotOne-1] +

'">');

任务:设置所有的老虎机根据随机数来显示对应的图片,最后点击RUN。

The end~~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容