JavaScript 返回多个值

上一节的知识讲了带参数的函数,getArea用于计算桌子的面积,它返回一个值——桌子的面积。

有的时候需求还真复杂,还是拿桌子来说,要求同时计算桌子的桌面面积,还计算桌子的体积。

计算面积用长度x宽度。

计算体积用长度x宽度x高度。

同时返回面积和体积,怎么办?

用数字类型,仅返回一个数字;

用布尔类型,返回一个值,要么是true,要么是false;

用字符串,可以返回多个信息,但这个信息需要再解析。

目前可以用的有数组、对象;对象还未深入学习。

先看看用数组从来包装多个值。后续再学习用对象返回多个值。

1

2

3

4

5

6

7

8

9

10

functiongetSize(length,width,height){

// 先计算面积,放于临时变量中

vararea= length*width;

// 再计算体积,放于临时变量中

varvolume=length*width*height;

// 声明一个数组,放置面积和体积

varsizes=[area,volume];

// 最后返回这个数组

returnsizes;

}

这个函数可以同时算出面积和体积。以数组的形式将面积和体积返回。

使用数据做函数的返回值,不仅可以返回2个值,以后不管什么复杂需求,返回3个4个乃至上成个,都可以用数组做函数的返回值。

接下来我们再来看如何调用返回数组的函数。

1

2

3

// 调用函数getSize

vararea=getSize(length,width,height)[0];

varvolume=getSize(length,width,height)[1];

说明:

getSize(length,width,height)将返回一个数组。

getSize(length,width,height)[0],取数组的第一个值。这是数组取值的知识运用。

getSize(length,width,height)[1],取数组的第2个值。

取值后并赋值给变量area和volume。

完整示例代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<!DOCTYPE html>

<htmllang="zh">

<head>

<metacharset="UTF-8">

<title>返回多个参数的函数</title>

</head>

<body>

<script>

window.onload=function (ev) {

// 声明一个变量,用于临时存储桌子的长度

var length;

length=80;

// 声明一个变量,用于临时存储桌子的宽度

var width = 60;

// 声明一个变量,用于临时存储桌子的高度

var height = 100;

// 调用函数getSize

var area=getSize(length,width,height)[0];

var volume=getSize(length,width,height)[1];

document.write("桌子的宽度是"+width+"<br>");

document.write("桌子的长度是"+length+"<br>");

document.write("桌子的高度是"+height+"<br>");

document.write(" 桌子的面积是"+area+"<br>");

document.write(" 桌子的体积是"+volume+"<br>");

}

function getSize(length,width,height){

// 先计算面积,放于临时变量中

var area= length*width;

// 再计算体积,放于临时变量中

var volume=length*width*height;

// 声明一个数组,放置面积和体积

var sizes=[area,volume];

// 最后返回这个数组

return sizes;

}

</script>

</body>

</html>