目录
3、定义函数,参数是 三个数字,年、月、日;返回值是这一天是这一年的第几天
1.猜数字小游戏[1~100]
function test() {
var num = prompt("输入一个数字") * 1;
var randomNum = Math.floor(Math.random() * 10);
if (num === randomNum) {
alert("猜中了");
} else {
alert("错误的")
}
}
2.定义一个数组,存入斐波那契数列的前十项
f(n) = f(n - 1) + f(n - 2)
array[n] = array[n - 1] + array[n - 2];
function fb(n) {
var arr = [1, 1];
for (var i = 0; i < n - 2; i++) {
arr[i + 2] = arr[i] + arr[i + 1];
}
return arr;
}
console.log(fb(10));// [ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ]
function fb(n) {
var arr = [1, 1];
var a = 1;
var b = 1;
var c;
for (var i = 0; i < n - 2; i++) {
c = a + b;
a = b;
b = c;
arr.push(c);
}
return arr;
}
console.log(fb(10));
3、定义函数,参数是 三个数字,年、月、日;返回值是这一天是这一年的第几天
function getCurrentDayOfYear(year, month, day) {
var totalDays = 0;
var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
for (var i = 0; i < month - 1; i++) {
totalDays += days[i]
}
totalDays += day;
if (isRunYear(year) && month > 2) {
totalDays++;
}
return totalDays;
}
function isRunYear(year) {
return (year % 4 === 0 && year % 100 != 0 || year % 400 === 0)
}
console.log(getCurrentDayOfYear(2022, 6, 24)); //175
4. 倒序输出数组中所有能被3整除的数字
function test(arr) {
var result = 1;
for (var i = 0; i < arr.length; i++) {
var num = arr[i];
if (num % 5 == 0) {
result *= num;
}
}
return result;
}
var arr = [1, 4, 20, 30, 80, 90];
console.log(test(arr));
5.计算数组中所有能被5整除的数字的乘积。
function test(arr) {
var result = 1;
for (var i = 0; i < arr.length; i++) {
var num = arr[i];
if (num % 5 == 0) {
result *= num;
}
}
return result;
}
var arr = [1, 4, 20, 30, 80, 90];
console.log(test(arr));
6、定义函数
para1:数字数组;
para2:数字;
返回值:该数字在数字数组中出现的次数。
[1,2,23,1,3,45,34,3] 3 ; 2
function fn(arr, num) {
var count = 0;
arr.forEach(function(value, index, array) {
if (value == num) {
count++;
}
});
return count;
}
console.log("出现的次数: ", fn([1, 2, 23, 1, 3, 45, 34, 3], 3));
7、定义函数(数组筛选)
para1:数字数组;
para2:数字;
返回值: 数组中所有以该数字为约数的元素构成的新数组。
[1,2,21,1,3,45,34,3] 3 ; [21,3,45,3]
function fn(arry, num) {
var arr = [];
arry.forEach(function(value) {
if (value % num == 0) {
arr.push(value);
}
})
return arr;
}
console.log(fn([1, 2, 21, 1, 3, 45, 34, 3], 3));
8.利用函数求任意个数的最大值 (方法定义时没有参数,调用时传递参数)
function fn() {
if (arguments.length === 0) return;
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
var num = arguments[i];
if (num > max) {
max = num;
}
}
return max;
}
console.log("max = ", fn(1, 2, 21, 1, 3, 45, 34, 3));
10、定义函数
para1:数字数组;
返回值:新数组;
[1,2,3,4,5,6];["1","12","123","1234","12345","123456","2","23","234","2345","23456","3","34","345","3456","4","45","456","5","56","6"];
arguments实际上是一个伪数组 可以使用 length属性 可以像数组一样取值 但不能使用数组的API
把伪数组强制转换伪数组对象
Array.from() from 静态方法 必须是Array 大写的调用
console.log(arguments instanceof Array); // false
function fn4() {
if (arguments.length === 0) return;
// 实际上是一个伪数组 可以使用 length属性 可以像数组一样取值 但不能使用数组的API
// 把伪数组强制转换伪数组对象
// Array.from() from 静态方法 必须是Array 大写的调用
// console.log(arguments instanceof Array);// false
var newArray = Array.from(arguments);
var max = newArray[0]
newArray.forEach(function(v) {
if (v > max) max = v;
})
return max;
}
console.log("max = ", fn4(1, 2, 21, 1, 3, 45, 34, 3));