04-数组函数
作者:互联网
数组的增删改查
-
增:表示的含义就是像数组中添加值
-
删:表示的含义将数组中的值删除
-
改:表示的含义将数组中的值修改
-
查:表示的含义将数组中的值取出:数组名[索引]
增加值
直接给数组赋值
语法:
索引赋值
语法: 数组名[索引]
后增值-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 的元素选出来,放入新数组
【分析】
-
程序中有两个数组,一个数组保存原来的数字, 另外一个数组保存大于10的数字
-
另外一个数组保存大于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记录
-
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>
查找值
将数组中的值取出来
冒泡排序
本质
将数据按照从大到小或者从小到大排列
-
降序排列:如果数据从大到小排列
-
升序排列:如果数据从小到大排列
实现过程
字符串,按照字符串编码先后顺序排列
-
使用2个循环(双重for循环)
-
在数组中表示两个相邻的值
数据组[索引]
数组名[索引+1];
-
交换两个变量的值:找第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-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、形参和实参的关系是一一对应的
-
形参的个数和实参的个数要对应
-
实参给形参赋值的时候,顺序是对应的,按顺序赋值
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>
返回值(可有可无)
应用场景
当我们需要在函数外部使用函数内部变量的值情况下,必须要返回值
用法
-
在函数中将需要在函数外部使用的值(变量)前面加return关键字;
-
在函数外部定义变量接收函数中的返回值: let 变量=函数名()
知识点17
注意事项
-
函数中的返回值不是必须要设置的。
-
函数中只能写1个return;
-
函数中程序执行了return后,后面的代码不会执行
-
函数中如果要返回多个值,则可以以数组的形式
-
返回值是什么,在函数外部得到的结果就是什么.
-
函数中如果没有返回值,得到的结果是undefined
代码演示-返回数组中最大值
【需求】获取数组中最大值,并返回
<script>
补充老师02作业
</script>
代码演示-计算数组中偶数总和
【需求】将一个数组中所有偶数添加到一个新数组中返回,并计算新数组总和。
<script>
补充老师02作业
</script>
代码演示-判断是否是闰年
【需求】能被4整除且不能被100整除,或者能被400整除
<script>
补充老师02作业
</script>
代码演示-时分转化
标签:演示,函数,04,ary,代码,let,数组 来源: https://www.cnblogs.com/qdatm/p/15546492.html