1.数组
1.1数组的意义及创建
- 数组:一组数据的集合,将一组数据存储在单个变量
- 创建方式
var arr = new Array();
var arr = [];
var arr1 = [1,2,'啦啦啦',true];
1.2访问数组元素
- 数组的索引(下标),用来访问数组元素的序号(从0开始)
var week = ['周一','周二','周三','周四','周五','周六','周日']
console.log(week[6]);
week.forEach(function(item,index){
console.log(item);
});
1.3遍历数组
- 数组名[索引号]
var color = ['red', 'pink', 'blue', 'green','aqua'];
console.log(color[0]);
console.log(color[3]);
- 通过for循环索引遍历数组
for (var i = 0; i < color.length; i++) {
console.log(color[i]);
}
- 注意
- 因为数组索引号从0开始,所以 i 必须从0开始
- 输出的时候 i 计数器当索引号来用
- 此处数组的长度是数组元素的个数 ,不要和数组的索引号混淆
- 当我们数组里面的元素个数发生了变化,这个** length 属性跟着一起变化**
- 案例
var sum = 0;
var num = [2, 6, 1, 7, 4];
for (var i = 0; i < num.length; i++) {
sum = sum + num[i];
}
var average = sum / num.length;
console.log(`这个数组的和是${sum}`);
console.log(`这个数组的平均值是${average}`);
var num1 = [2, 6, 1, 77, 52, 25, 7,87,5,95];
var max = num1[0];
for(var i = 1; i < num1.length; i++){
if(num1[i] > max){
max = num1[i];
}
}
console.log(`这个数组的最大值是${max}`);
1.4数组中新增元素
- 数组中新增元素 修改length长度
var arr = ['red', 'green', 'blue', 'pink'];
console.log(arr.length);
arr.length = 7;
console.log(arr);
console.log(arr[4]);
- 数组中新增元素 修改索引号
arr[4] = 'hotpink';
arr[5] = 'lightgreen';
arr[6] = 'aqua';
console.log(arr[4]);
console.log(arr[5]);
console.log(arr[6]);
- 注意:如果索引号被占用,原有元素会被替换;不要直接给数组名赋值,否则里面的数组元素都没有了
- 案例
var str1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var str2 = [];
var j = 0
for(var i = 0; i < str1.length; i++){
if(str1[i] >= 10){
str2[j] = str1[i];
j++;
}
}
console.log(str2);
var str1 = [2,6, 1, 77, 52, 0, 25, 7,34,6];
var str2 = [];
for(var i = 0; i < str1.length; i++){
if(str1[i] >= 10){
str2[str2.length] = str1[i];
}
}
console.log(str2);
1.5数组案例
- 将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的0去掉,形成一个不包含0的新数组
var str = [2,0,6,1,77,0,52,0,25,7];
var newstr = [];
for(var i = 0; i < str.length; i++){
if(str[i] != 0){
newstr[newstr.length] = str[i];
}
}
console.log(newstr);
- 要求: 将数组 [‘red’, ‘green’, ‘blue’, ‘pink’, ‘purple’] 的内容反过来存放
var color = ['red', 'green', 'blue', 'pink', 'purple'];
var newcolor = [];
for(var i = color.length - 1; i >= 0; i--){
newcolor[newcolor.length] = color[i]
}
console.log(newcolor);
1.6冒泡排序
- 冒泡排序 ,是一种算法,把一系列的数据按照一定的顺序进行排列显示(从小到大或者从大到小)
var str = [5, 4, 3, 2, 1];
for (var i = 0; i < str.length - 1; i++) {
for (var j = 0; j < str.length - i - 1; j++) {
if (str[j] > str[j + 1]) {
var temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}
}
console.log(str);
2.函数
2.1函数的意义及使用
- 函数,就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用
- 声明函数
function 函数名() {
函数体代码
}
- 注意:
- function 是声明函数的关键字,必须小写
- 由于函数一般是为了实现某个功能才定义的,所以通常我们将函数名命名为动词,比如 getSum
- 调用函数 函数名()
function sayHi(){
console.log('hi~');
}
sayHi();
- 注意:
- 调用的时候千万不要忘记添加小括号
- 口诀:函数不调用,自己不执行
- 声明函数本身并不会执行代码,只有调用函数时才会执行函数体代码
- 函数案例
function getsum(){
var sum = 0;
for(var i = 1; i <= 100; i++){
sum += i;
}
console.log(sum);
}
getsum();
2.2函数中的实参与形参
- 定义:在声明函数时,可以在函数名称后面的小括号中添加一些参数,这些参数被称为形参;在调用该函数时,同样也需要传递相应的参数,这些参数被称为实参
- 作用,在函数内部某些值不能固定,我们可以通过参数在调用函数时传递不同的值进去
function getsum(num1, num2, num3) {
console.log(num1 + num2 + num3);
}
getsum(4, 8,8);
getsum(5,23);
2.3补充函数相关
-
函数参数的传递过程
- 调用的时候实参值是传递给形参的
- 形参简单理解为:不用声明的变量
- 实参和形参的多个参数之间用逗号(,)分隔
2.4函数的返回值return
- 注意:
- 在使用 return 语句时,函数会停止执行,并返回指定的值
- 如果函数没有 return ,返回的值是 undefined
- 案例
function getmax(num1,num2){
return num1 > num2? num1 : num2;
}
console.log(getmax(34,65));
console.log(getmax(76,23));
function getMax(arr){
var max = arr[0];
for(var i = 1; i < arr.length; i++){
if(arr[i] > max){
max = arr[i];
}
}
return max;
}
var arr1 = [3,5,8,12,54,32,18];
console.log(getMax(arr1));
- 补充:
- 使用return时,函数会停止执行,之后的语句不再执行
- return只能返回一个值,有多个值时,返回最后一个
3.一些作业中的案例
- 写一个函数,用户输入一个数判断是否是素数,并返弹出回值(又叫质数,只能被1和自身整数的数)
var num = +prompt('请输入一个正整数');
function getprime(num){
for(var i = 2; i < num; i++){
if(num % i == 0){
return '不是';
}
}
return '是';
}
console.log(getprime(num));
- 简易计算器,用户可以选择计算方法及输入数字
var choose = prompt('欢迎使用简易计算器:' + '\n' + '1,加法计算;' + '\n' + '2,减法计算' + '\n' + '3,乘法计算' + '\n' + '4,除法计算' +'\n' + '5,退出' + '\n' + '请输入您的选项');
if (choose == 5) {
alert('退出');
} else {
var num1 = +prompt('请输入第一个数');
var num2 = +prompt('请输入第二个数');
alert(getresult(num1, num2));
}
function getresult(num1, num2) {
if (choose == 1) {
return num1 + num2;
} else if (choose == 2) {
return num1 - num2;
} else if (choose == 3) {
return num1 * num2;
} else if (choose == 4) {
return num1 / num2;
}
}
|