其他分享
首页 > 其他分享> > 04-数组函数

04-数组函数

作者:互联网

 

数组的增删改查

  1. 增:表示的含义就是像数组中添加值

  2. 删:表示的含义将数组中的值删除

  3. 改:表示的含义将数组中的值修改

  4. 查:表示的含义将数组中的值取出:数组名[索引]

 

增加值

直接给数组赋值

语法:

 

索引赋值

语法: 数组名[索引]

 

后增值-push

特点:向数组的末尾增加一个值或者多个值

语法:数组名.push(值,值);

总结:通过push将值添加到数组原来值的后面

代码演示-push增加值

<script>
   let ary = [1, 2];
   ary.push('abc', '呵呵');
   console.log(ary);
</script>

 

代码演示-push增加2个值

<script>
       //增加
       let i = [99, 88, 66, 77];
       i.push(11, 68);
       console.log(i)
</script>

 

前增值-unshift

特点:将值添加到数组的前面

语法: 数组名.unshift(值,值);

代码演示-unshift增加2个值

<script>
let ary = [1, 2];
   ary.unshift('abc', '呵呵');
   console.log(ary);
</script>

 

代码演示-选出大于10的数字

【需求】选出大于10的数字

【需求】 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素选出来,放入新数组

【分析】

  1. 程序中有两个数组,一个数组保存原来的数字, 另外一个数组保存大于10的数字

  2. 另外一个数组保存大于10的数字,本质上就是给当前数组中添加值(直接添加, 通过索引添加, 通过push添加 通过unshift添加)

【实现】

<script>
   let ary = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
   let ary1 = [];
   // 循环遍历原数组,获取每一个值
   for(let i = 0; i < ary.length; i++) {
        if(ary[i] >= 10) {
            // 将当前值添加到新数组中
            ary1.push(ary[i]);
        }
      }
console.log(ary1);
</script>

bug记录

  1. ary1.push(ary[i]);-----不是等号是括号

 

指定位置-splice

语法:数组名.splice(索引, 0, 要添加的值);---中间的0代表不删除;多个值逗号隔开

代码演示-splice增加2个值

<script>
     let ary = [1, 2, 3];
     ary.splice(0, 0, 'abc');
     ary.splice(1, 0, 'abc', '呵呵');
     console.log(ary);
</script>

 

代码演示-用splice添加2个值

<script>
       //添加语法:数组名.splice(索引,0,要添加的值);--0是代表不删
       let ary = [33, 44, 55, 66];
       ary.splice(2, 0, "哈哈", "哇哇")
       console.log(ary);
</script>

 

 

删除值

删除数组中的值

末尾删除-pop

语法:数组名.pop();

总结:数组名.pop() 表示从数组的末尾开始删除

代码演示-pop删除2个值

<script>
   let ary = [1, 2, 3];
   ary.pop();
   ary.pop();
   console.log(ary);
</script>

 

用pop删除2个

<script>
 //删除数组中的值语法:1.数组名.pop();代码演示:
       let ary = [1, 6, 12, 23, 33, 77];
       ary.pop();
       ary.pop();
       console.log(ary);
</script>

 

 

头部删除-shift

总结:数组名.shift()表示从数组的前面(开始)位置删除值

代码演示-shift删除1个值

<script>
//删除数组中的值语法:1.数组名.shift();代码演示:
let ary = [1, 6, 12, 23, 33, 77];
ary.shift();
console.log(ary);
</script>

 

代码演示-用shift删除1个值

<script>
//删除数组中的值语法:1.数组名.shift();代码演示:
let ary = [1, 6, 12, 23, 33, 77];
ary.shift();
console.log(ary);
</script>

 

删除-splice(全能)

全能方法(可以删除也可以添加)

语法:数组名.splice(索引, 删除的个数);

代码演示-用splice删除1个值

<script>
let ary = [1, 2, 3, 4, 5, 6, 7];
ary.splice(1, 1);
console.log(ary);
</script>

 

修改值

修改数组中的值:本质上就是将数组中的值取出重新赋值

<script>
//修改数组中的值:本质上就是将数组中的值取出重新赋值let ary =[1,2,3,4];
ary[0] = 'abc';
console.log(ary);
</script>

 

查找值

将数组中的值取出来

 

冒泡排序

本质

将数据按照从大到小或者从小到大排列

  1. 降序排列:如果数据从大到小排列

  2. 升序排列:如果数据从小到大排列

     

实现过程

字符串,按照字符串编码先后顺序排列

  1. 使用2个循环(双重for循环)

  2. 在数组中表示两个相邻的值 数据组[索引] 数组名[索引+1];

  3. 交换两个变量的值:找第2个变量,然后交换

     

实现原理

1、相邻的两个值交换位置

2、读如果前一个值比后一个值大,那么交换位置

3、对比多个数字,所以先通过数组将数字统统保存起来

4、找到数组中相邻的两个值,必须先找到数组中所有的值(循环遍历数组)

5、循环4次(总个数少1)实现最后的效果

6、使用循环的次数嵌套遍历数组循环

 

实现代码

<script>
let ary = [5, 4, 3, 2, 1];
// 第一个循环: 表示要循环多少趟(次数)
for(let i = 1; i <= 4; i++) {
//遍历数组
for(let a = 0; a < ary.length; a++) {
if(ary[a] > ary[a + 1]) {
// 交换位置
let c = ary[a];
ary[a] = ary[a + 1];
ary[a+ 1] = c;
}
}
}
console.log(ary);
</script>

 

函数

定义:函数好比给代码外部加了一个外套;可以将重复的代码写到一个函数中;

函数基本语法

语法

定义语法+调用语法

<script>
//函数语法:
function 函数名 {
代码;
}
//调用函数
函数名()
</script>

注意

  1. 当将代码写在函数中,函数中的代码不会执行;

  2. 如果要执行函数中的代码,只要调用函数就可以;

  3. 函数调用语法: 函数名() 【小括号不能丢!!!】

 

代码演示-求1-100之间所有数的和

【需求】

通过函数方式实现:求1-100之间所有数的和

【代码】

<script>
通过函数方式实现:求1-100之间所有数的和
function summation() {
let sum = 0;
for (let i = 1; i <= 100; i++) {
sum += i;
}
console.log(sum);
}
summation();
summation();
</script>

 

代码演示-奇数还是偶数

【需求】

通过函数方式实现:判断一个数字是奇数还是偶数

【代码】

<script>
function judge() {
let i = Number(prompt("请输入一个数字"));
if (i % 2 == 0) {
alert("偶数");
} else {
alert("奇数")
}
}
judge();
judge();
</script>

 

代码演示-打印一个10行直角三角形

【需求】

通过函数的方式实现:在页面中打印一个10行直角三角形

【代码】

<script>
//通过函数的方式实现:在页面中打印一个10行直角三角形
function sanjiao() {
for (let i = 1; i <= 10; i++) {
for (let j = 1; j <= i; j++) {
document.write('⚝')
}
document.write(`<br>`)
}
}
sanjiao();
sanjiao();
</script>

 

函数的参数(可有可无)

形参

定义函数的时候,函数名后面的变量,本质就是一个变量。function 函数名(形参){}

 

实参

调用函数的时候,函数名后面的值(变量)。本质上就是用来给形参赋值的。函数名(123);

 

注意事项

1、函数中的参数不是必须的

4、形参和实参的关系是一一对应的

  1. 形参的个数和实参的个数要对应

  2. 实参给形参赋值的时候,顺序是对应的,按顺序赋值

5、函数中,如果没有实参给形参赋值,则形参的默认是undefined;

6、函数中形参的个数不是确定的,形参的个数根据实际情况而定。

 

代码演示-求1-100的之间的和

【需求】求1-100的之间的和

<script>
//求1-100的之间的和
function a(num) { //num是形参
let sum = 0;
for (let i = 1; i <= num; i++) {
sum += i;
}
console.log(sum);
}

a(100); //100是实参
a(50);
</script>

 

代码演示-求圆面积

【需求】求圆的面积(3.14 rr)

<script>
function fn(r) {
console.log(3.14 * r * r);
}
fn(10);
fn(100);
</script>

 

代码演示-求3个数中的最大值

<script>
function getMax(ary) {
// 求ary数组中最大值
let max = ary[0];
for(let i = 1; i < ary.length; i++) {
if(ary[i] > max) {
max = ary[i];
}
}
console.log(max);
}
getMax([1, 2, 34, 5]);
</script>

 

 

代码演示-奇数偶数判断

<script>
function fn(num) {
if (num % 2 !== 0) {
alert("奇数")
} else {
alert("偶数")
}
}
fn(44)
</script>

 

代码演示-求5个数的总和

<script>
function fn(a, b, c, d, e) {
console.log(a + b + c + d + e)
}
fn(1, 2, 3, 4, 5)
</script>
<script>
function fn(ary) {
let sum = 0;
for (let i = 0; i < ary.length; i++) {
sum += ary[i]
}
console.log(sum)
}
let ary1 = [1, 2, 3, 4, 5]
fn(ary1)
</script>

 

返回值(可有可无)

应用场景

当我们需要在函数外部使用函数内部变量的值情况下,必须要返回值

 

 

用法

  1. 在函数中将需要在函数外部使用的值(变量)前面加return关键字;

  2. 在函数外部定义变量接收函数中的返回值: let 变量=函数名()

知识点17

 

注意事项

  1. 函数中的返回值不是必须要设置的。

  2. 函数中只能写1个return;

  3. 函数中程序执行了return后,后面的代码不会执行

  4. 函数中如果要返回多个值,则可以以数组的形式

  5. 返回值是什么,在函数外部得到的结果就是什么.

  6. 函数中如果没有返回值,得到的结果是undefined

 

代码演示-返回数组中最大值

【需求】获取数组中最大值,并返回

<script>
补充老师02作业
</script>

 

代码演示-计算数组中偶数总和

【需求】将一个数组中所有偶数添加到一个新数组中返回,并计算新数组总和。

<script>
补充老师02作业
</script>

 

代码演示-判断是否是闰年

【需求】能被4整除且不能被100整除,或者能被400整除

<script>
补充老师02作业
</script>

 

代码演示-时分转化

 

 

 

标签:演示,函数,04,ary,代码,let,数组
来源: https://www.cnblogs.com/qdatm/p/15546492.html