arguments的使用
JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数组,因此及可以进行遍历
案例:
求任意个数的最大值:
//求一组数中的最大值
function arr(){
var max = arguments[0];
console.log(arguments);
for(var i=0;i<arguments.length;i++){
if(max<arguments[i]){
max=arguments[i];
}
}
document.write(max)
}
var a=prompt('请输入第一个数')
var b=prompt('请输入第二个数')
var c=prompt('请输入第三个数')
var d=prompt('请输入第四个数')
arr(parseFloat(a),parseFloat(b),parseFloat(c),parseFloat(d))
求任意数的和
function arr(){
var sum=0;
for(var i=0;i<arguments.length;i++){
sum+=arguments[i]
}
console.log(sum);
}
var a=prompt('请输入第一个数')
var b=prompt('请输入第二个数')
var c=prompt('请输入第三个数')
var d=prompt('请输入第四个数')
arr(parseFloat(a),parseFloat(b),parseFloat(c),parseFloat(d))
案例:
求斐波那契数列Fibonacci中的第n个数是多少? 1 1 2 3 5 8 13 21…
function arr(n){
var a=1;
var b=1;
var sum=0;
for(var i=3;i<=n;i++){
sum=a+b;
a=b;
b=sum;
}
console.log(sum);
}
var nn=prompt('请输入第N个值')
arr(parseFloat(nn))
翻转数组,返回一个新数组
//反转数组(第一种方法)
var arr1 = [1,2,3];
var arr2 = reverse1(arr1);
console.log(arr2);
console.log(reverse1(arr1));
//定义一个新数组,把老数组中的元素反向添加到新数组中
function reverse1(array){
var newArr = [];
for(var i=array.length-1;i>=0;i--){
newArr[newArr.length] = array[i];
}
return newArr;
}
//反转数组(第二种方法)
var arr = ['a',5,4,8,'ww']
console.log(arr.reverse());
对数组排序,从大到小和从小到大;
//对数组排序,从小到大
var Arr=[13,7,10,76,97,100,35];
var min;
for(var i=0; i<Arr.length; i++){
for(var j=i; j<Arr.length;j++){
if(Arr[i]>Arr[j]){
min=Arr[j];
Arr[j]=Arr[i];
Arr[i]=min;
}
}
}
// document.write(Arr.toString()+"<br />");
console.log(Arr);
//对数组排序,从大到小
var Arr=[13,7,10,76,97,100,35];
var min;
for(var i=0; i<Arr.length; i++){
for(var j=i; j<Arr.length;j++){
if(Arr[i]<Arr[j]){
min=Arr[j];
Arr[j]=Arr[i];
Arr[i]=min;
}
}
}
// document.write(Arr.toString()+"<br />");
console.log(Arr);
输入一个年份,判断是否是闰年[闰年:能被4整数并且不能被100整数,或者能被400整数]
var sum = prompt('请输入年份')
function arr(){
if(sum%4==0 &&sum%100!=0 || sum%400==0){
document.write('这是闰年')
}else{
document.write('这不是闰年')
}
}
arr()
以3月5日为例,应该先把前两个月的加起来, 然后再加上5天即本月的第几天,特殊情况, 闰年且输入月份大于3时需考虑多加一天
var years=Number(prompt('请输入年'));
var month=Number(prompt('请输入月'));
var day=Number(prompt('请输入日'));
function getDay(years, month , day){
//天数
var days=day;
if (month == 1) { //如果月份为一月那 直接输出天数 跳出循环
return days;
}
//判断月数
//不是一月的话累加之前的月数加上当月的天数 months
var months=[31,28,31,30,31,30,31,31,30,31,30,31];
for (var i=0;i<month-1;i++) { //第几天和之前所有天数和
days += months[i];
}
if (isRn(years) && month>2) { //判断输入的是否是闰年 与大于2月 是的天数加一 否则跳出循环
days++; //加一天
}
return days;
}
function isRn(num) { //判断是否是闰年【能被4整除且不能被100整除,或者能被400整除】
return num % 4 == 0 && num % 100 != 0 || num % 400 == 0;
}
document.write('今天是今年的第'+getDay(years, month , day)+'天');