js学习day3,数组与函数(上)
程序员文章站
2024-01-25 19:48:52
...
1. 通过创建对象创建数组
var array=new Array();
console.log(array);
如果数组()里面有一个数,那么这个数就是这个数组长度,多个数就为这个数组的值,而且里面的数为undefined
arr[10]这个数只是值而不是长度
2.通过字面量创建数组
var arr=[];//空数组
console.log(arr);
3.数组的长度:数组元素的个数
4.数组可以存储不同类型的数据
var arr=[1,2,"gg",undefined,null,true,new Object()];
console.log(arr);
5.改变数组长度
var arr=[];
arr[0]=0;
console.log(arr[2]);
document.write(arr[2]);
//函数定义:吧很多重复的代码封装起来,在需要的时候直接调用即可
//函数作用:代码的重用
//函数分为函数定义和函数调用,如果只定义,不调用,函数是不会执行的
//函数返回值:当函数调用需要的时候,只需要定义变量接收就行
/*函数分为:
有参有返回 有参无返回 无参有返回 无参无返回*/
//形参和实参参数个数可以不相等
//函数没有返回值,但是接收了,结果为undefined,没有明确的返回值(return;)也为undefined
//return下面的代码不执行
//把数组用|分开
var arr=["张三","李四","王五"];
var str="";
for (var i = 0;i < 2;i++) {
str += arr[i] + "|";
}
console.log(str+arr[arr.length-1]); //arr[arr.length]最后一个元素
var arr=["张三","李四","王五"];
var str="";
for (var i = 1;i < 3;i++) {
str += "|" +arr[i] ;
}
console.log(arr[0]+str);
//去掉数组中重复的0
var arr=[1,3,0,5,9,0,0,8];
var arr1 = []; //空数组长度为0
for (var i = 0;i < 8;i++) {
if (arr[i] == 0) {
continue;
}
arr1[arr1.length] = arr[i]
//// console.log(arr[i]);
}
console.log(arr1);
//冒泡排序
var arr=[1,3,0,5,9,0,0,8];
var temp;
for (var i = 0;i < arr.length;i++) {
for (var j = 0;j < arr.length - i - 1;j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
//提示用户输入班级人数,求总成绩,平均值,最高分,最低分
var arr = [];
var ptr = parseInt(prompt("请输入班级人数")) ;
//// var sum = 0,age,max =arr [0],min = arr[0];
for (var i = 0;i < ptr;i++){
arr[i] =parseInt( prompt("请输入第"+(i+1)+"成绩"));
var sum = 0,age,max =arr [0],min = arr[0];
sum += arr[i];
if (arr[i] > max) {
max = arr[i];
} else if (arr[i] < min) {
min = arr[i]
}
}
console.log(sum);
console.log(sum / arr.length);
console.log(max);
console.log(min);
//求1-n之间所有数的和
var sum = 0
function f1 (n) {
for (var i = 1;i <= n;i++){
sum += i
}
return sum;
}
f1 (prompt (""));
console.log(sum);
//求n-m之间所有数的和
function getSum (x,y) {
var sum = 0;
for (var i = x;i <= y;i++) {
sum += i;
}
return sum;
}
n = parseInt( prompt("第一个"));
m = parseInt( prompt("第二个"));
console.log (getSum(n,m));
//圆的面积
var s;
function getS (r) {
s = Math.PI*r*r
return s;
}
n=parseInt (prompt ("半径"))
console.log (getS (n));
//求两个数最值
var arr = [1,34,79,39,100,100000]
var min = arr[0],max = arr[0];
for (var i = 0;i <arr.length;i++ ) {
if (arr[i] > max) {
max = arr[i];
} else if (arr[i] < min) {
min = arr[i];
}
}
console.log (max,min);
//判断一个数素数
function getPrime (num) {
var flag = 1
for (var i = 2; i < num; i++) {
if (num % i == 0) {
flag = 0;
break;
}
}
if (flag == 0) {
console.log("不是素数");
} else {
console.log("是素数");
}
}
x = parseInt (prompt ("请输入一个数"));
getPrime (x);
//异步现象
function getFact (n) {
var fact = 1;
for (var i = 1;i <= n;i++) {
fact *= i;
}
return fact;
}
function getSum (n) {
var sum = 0;
for (var i = 1; i <= n; i++) {
sum += getFact(i);
}
return sum;
}
console.log( getSum (4));
//求一组数最值与和用函数
//注释使光标直接到形参函数这里 /**回车
/**
*给我一个数组,我返回一个数组(最大值,最小值,和)
* @param array参数是一个数组
* @returns {*[]}返回的是一个数组,第一个数返回最大值,第二个返回的是最小值,第三个返回的是和
*/
function getArrayZuiZhi (array) {
var sum = 0;
max = array[0];
min = array[0];
for (var i = 0;i < array.length;i++) {
sum += array[i];
//// ///////// if (arr [i] > max) {
//// ///////// max = arr[i];
//// /////////// } else if (arr[i] < min) {
//// /////////// min = arr[i];
//// //////////// }
//// /////// }
if (array [i] > max) { //若果这个数大于max,就将这个数给max
max = array[i];
} else if (array[i] < min) { //若果这个数小于max,就将这个数给min
min = array[i];
}
}
return arr1 = [min,max,sum] //用数组存三个返回值 ,返回的是一个数组
}
//// /////////////// var arr =[12,80,54,23,1,0];
var arr1 =[];
//// /////////////// var max = arr[0];
//// /////////////// var min = arr[0] ;
//// //////////////// console.log(getArrayZuiZhi(arr));
var resultArray = getArrayZuiZhi([12,80,54,23,1,0]); //用变量存储返回调用的值
console.log("最大值为"+resultArray[0]);
console.log("最小值为"+resultArray[1]);
console.log("和值为"+resultArray[2]);
通过函数求一组数据的和
function getSum (array) {
var sum = 0;
for (var i = 0;i < array.length;i++) {
sum += array[i];
}
return sum; //没有返回值时,结果为undefined
}
console.log(getSum([1,2,3,4,5,6,7,8,9,10]));
//通过函数实现数组反转
function getArray (array) {
var temp;
for (var i = 0;i < array.length / 2;i++) { 遍历数组前半元素与后面交换
temp = array[i]; //定义一个临时变量用来交换数组元素
array[i] = array[array.length-i-1];
array[array.length-i-1] = temp;
}
return array;
}
console.log(getArray([1,2,3,4,5,6,7,8,9]));
//用函数实现冒泡排序
function getMaopao (array) {
for (var i = 0;i < array.length - 1;i++) { //控制比较轮数:比元素个数-1
for (var j = 0;j < array.length - i - 1;j++) { //控制每一轮比较次数为:长度-轮数-1
if (array[i] > array[i + 1]) {
var temp = array[i]; //定义一个临时变量用来交换数组元素
array[i] = array[i+1];
array[i+1] = temp;
}
}
}
return array; //返回一个数组
}
console.log(getMaopao([1,2,3,4,5,6,7,8,9])); //将数组的值传到形参array数组中
//输入一个日期判断是否为闰年
var months = [31,28,31,30,31,30,31,31,30,31,30,31] ; //定义一个数组存储每个月的天数
function getRunnian (year) {
return ( year % 4 ==0 && year % 100 != 0 || year % 400 ==0) ; //返回的是Boolean类型
}
function getDays (year,month,day) {
var days = day; //定义变量存储对应的天数
if (month == 1) { //如果月份为1月份,那么就不算天数,直接返回days
// var days = day;
return days;
}
//代码到这里,说明month不是1月份
for (var i = 0;i < month - 1;i++) { //小于的是当月天数-1,既不是当月也不是months
days += months[i]; //因为for从0开始,所以month-1,如果是months的话,输出12个月了
}
if (getRunnian(year) && month > 2) { //判断year是否是闰年并且是大于二
days++; //只有month大于二才考虑是否为闰年
}
return days;
}
console.log(getDays(2017,2,23))
上一篇: App Engine上ajax请求python中文乱码问题
下一篇: js day4函数(下)
推荐阅读
-
js学习day3,数组与函数(上)
-
javascript学习全过程-----js学习笔记(4)------函数(上)
-
JavaScript的初步学习,JS的数据类型与变量,函数,DOM操纵HTML,BOM操作浏览器
-
JS 流程控制(分支与循环)、函数的参数(不足、剩余)、函数返回值(返回数组与对象)、对象字面量的简化、模板字面量、模板函数
-
JS 流程控制(分支与循环)、函数的参数(不足、剩余)、函数返回值(返回数组与对象)、对象字面量的简化、模板字面量、模板函数
-
JS函数类型与数据类型学习
-
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)_基础知识
-
JS函数类型与数据类型学习
-
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)_基础知识
-
学习了事件的冒泡与事件的委托代理以及表单提交验证js线程运行机制还有字符的拼接截取替换html插入以及数组常用的api,例如转类数组增删遍历归并删除替换等