//数组(Array)⭐
//数组字面量创建数组 var arr=[](空数组)
//获取数组元素:;利用索引(下标);
/* var arr=[1,2,3,4];
console.log(arr[3]); */
//遍历
/* var arr=[1,2,3,4,5,'李鑫','fuzhen'];
for(var i = 0 ; i < arr.length ; i++ ){ //i从0开始 数组长度:数组名.length
console.log(arr[i]);
} */
//求和案例
/* var arr=[2,6,1,7,4];
var sum=0,average=0;
for(var i=0;i<arr.length;i++){
sum=sum+arr[i]; //数组元素是arr[i]
}
average=sum/arr.length;
console.log(sum,average); */
//最大值案例
/* var arr=[2,6,1,9,8,0,-1];
var max=arr[0];
for(var i = 0; i<arr.length ;i++){
if (arr[i]>max){
max = arr[i];
}
}
console.log(max); */
//转换成字符串
/* var arr=['app','red','green','blue'];
var sum=''
var sep='|';
for(var i=0;i<arr.length;i++){
sum=sum+arr[i]+sep;
}
console.log(sum); */
//新增数组元素
/* 1.
var arr=['wq','er','ty'];
console.log(arr.length);
arr.length=5;
console.log(arr);
arr[3]='as';
arr[4]='df';
console.log(arr); */
/*2.
var arr=['wq','er','ty'];
arr[3]='zx';//新增了
arr[0]='xc';//原有元素会被替换掉
console.log(arr); */
//
/* var arr=[];
for(var i=0;i<10;i++){
arr[i]=i; //不要写成arr=i,这是直接将整个数组赋值了,就没有之前存的值了
}
console.log(arr); */
//筛选数组
/* var arr=[1,3,5,7,99,22,80];
var newArr=[];
var j=0;
for(var i=0;i<arr.length;i++){
if(arr[i]>10){
// newArr[i]=arr[i]; //新数组不能从i开始,得从0开始
/* 1.
newArr[j]=arr[i];
j++; */
2.
//
/* newArr[newArr.length]=arr[i];//最开始长度为0,所以第一个赋值给了newArr[0],然后赋值之后有了一个元素,长度变为了1,所以第二个值付给了newArr[1];
} *
}
console.log(newArr); */
//案例1,去除0
/* var arr=[2,0,13,1,77,0,71,0,23];
var newArr=[],j=0;
for(var i=0;i<arr.length;i++){
if (arr[i]!=0){
newArr[newArr.length]=arr[i];
}
}
console.log(newArr); */
//翻转数组
/* var arr=['qw','qa','sd','sz','ey'];
var newArr=[],j=0;
for(var i=arr.length-1;i>=0;i--){
newArr[j]=arr[i];
j++;
}
console.log(newArr); */
//冒泡排序
/* var arr=[5,3,2,4,1];//
var a=0;
for(var i=0 ; i<arr.length-1;i++) //外层循环管的是趟数,比如5个数要走4趟 (能理解为,第一个数在第四趟一定会得出最后结果,第二个数在第三趟会得出结果(因为一定有一个最大数会被选出来排在最后))
{
for(var j=0;j<arr.length-i-1;j++){ //内层循环管的是一趟会比较多少次(最多交换多少次),比如5个数第一趟会交换4次,第二趟会交换三次
if (arr[j]>arr[j+1]){
var temp=0;
temp=arr[j]; //交换数
arr[j]=arr[j+1];;
arr[j+1]=temp;
}
}
}
console.log(arr); */
//函数:执行大量重复代码 function是声明函数的关键字 声明:function 函数名(){函数体} 函数名()就可以被执行
// 1.声明
/* function getSum() {
var sum=0;
for(var i=1;i<=100;i++){
sum=sum+i;
}
console.log(sum);
}
//2.调用
getSum(); */
//利用函数参数实现函数重复不同的代码 声明:function 函数名(形参(形式上的参数)1,形参2,···){函数体} 函数名(实参(实际的参数)1,实参2,···)就可以被执行 形参是接受实际参数的
//案例 求两数的和
/* function getSum(num1,num2){
var num=num1+num2;
console.log(num);
}
getSum(1,2);
getSum(3,90); */
//求两数之间的和
/* function getSum1(start,end) {
var sum=0;
for(var i=start;i<=end;i++){
sum=sum+i;
}
console.log(sum);
}
getSum1(1,100);
getSum1(1,50); */
//函数形参与实参不匹配问题
//1.如果实参多余形参,则取到形参个数为止
//2.如果实参少于形参,多的形参未接收到值就是undefined(形参的默认值),所以最终结果是实参加上undefined=NAN。
//尽量让形参和实参数量一致
//函数返回值 函数里不该有输出语句,一般是将结果返回给调用者 通过return实现
//案例
/* function cook(aru) {
return aru;
}
console.log(cook('大肘子')); */
//优化前面的案例(求两数之间的和)
/* function getSum1(start,end) {
var sum=0;
for(var i=start;i<=end;i++){
sum=sum+i;
}
return sum;
}
console.log(getSum1(1,100),getSum1(2,50)); */
//案例:求两数的最大值
/* function max(num1,num2) {
/* if(num1>num2){
return num1;
}else{
return num2;
} *
return num1 > num2 ? num1 : num2;
}
console.log(max(1,2),max(3,9)); */
//案例:求一组数中的最大值
/* function getMax(arr){ //接受数组
var max=arr[0];
for(var i=1;i<arr.length;i++){
if (arr[i]>max){
max=arr[i];
}
}
return max;
}/*
console.log(getMax([2,3,4,5,6,7,8,9])); //送出数组
var re=getMax([2,3,4,5,6,7,8,,9]); //一般是这种格式
console.log(re); */
//return只能返回一个结果,return具有终止函数的作用,所以return一般写在最后
/* function resu(n1,n2) {
return [n1+n2,n1*n2]; //如想得到多个结果可以利用数组输出
}
var re=resu(1,2);
console.log(re); */
//函数里有return时,就返回的return的值,如果函数没有return 就返回undefined
//作业:判断一个数是否为素数 !!!!成功!!!
function isSushu(num){
for (var i=2;i<num;i++){
if(num%i==0){
return num+'不是素数';
}
}
if(num<=3){ //这些情况不要写在循环里
return num+'是素数';
}else if(i>num-1){
return num+'是素数';
}
}
console.log(isSushu(62));