程序地带

16.数组基本知识、数组排序、数组迭代和基本方法


数组:一次可以存放一个以上的值。


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 方法1.创建数组(最后一个元素之后不要写逗号)
var array1=["a","ab","abc"];
document.write(array1);//a,ab,abc
// 方法2.利用new创建数组
var array2=new Array("A","B","ABC");
document.write(array2);//A,B,ABC
// 访问数组元素
document.write(array1[0]);//a
document.write(typeof array1);//object
//对象使用名称来访问其“成员”
var person={firstName:"John",lastName:"DOE",age:13};
document.write(person["age"]);//13
// 数组的属性和方法
var a=array1.length;
document.write(a);//3
var b=array2.sort();
document.write(b);//A,ABC,B
// forEach()为每一个数组元素调用函数
/**
* 输出:
* .A
* .ABC
* .B
*/
function fun1(i){
"<li>"+i+"</li>";
document.write("<li>"+i+"</li>");
}
document.write("<ul>");
b.forEach(fun1);
document.write("</ul>");
/**
* 添加数组元素
*/
// 方法1.push():向数组添加元素的最佳方法
b.push("hello");
document.write(b);//A,ABC,B,hello
// 方法2.利用length属性向数组添加元素
b[b.length]="Lemon";
document.write(b); //A,ABC,B,hello,Lemon
// 如果使用命名索引,js会将数组定义成标准对象(结果未必正常)
// 数组属于对象
document.write(typeof b);//object
// Array.isArray()
document.write(Array.isArray(b));//true
// toString()
document.write(b.toString());//A,ABC,B,hello,Lemon
// join()
document.write(b.join("&"));//A&ABC&B&hello&Lemon
/**
* pop:删除队尾元素,返回该元素
* push:向队尾添加一个元素,返回新数组长度
*/
b.pop();
document.write(b);//A,ABC,B,hello
b.push("C");
document.write(b+"<br>");//A,ABC,B,hello,C
/**
* shift:删除首个数组元素,返回被移出去的元素。
* unshift:方法(在开头)向数组添加新元素,并“反向位移”旧元素,方法返回新数组的长度。
*/
b.shift();
document.write(b+"<br>");//ABC,B,hello,C
// delete:删除元素
delete b[1];
document.write(b);//ABC,,hello,C
/**
* splice() 方法可用于向数组添加新项。
* 第一个参数:定义了应添加新元素的位置
* 第二个参数:删掉元素的数量
* 后面的参数:为待添加的元素
*/
b.splice(0,3,"www","yyy");
document.write(b);//ABC,,www,yyy
b.splice(0,1);//删除b中的第一个元素
/**
* concat():通过合并(连接)现有数组来创建一个新数组,不会更改现有数组。它总是返回一个新数组。
*
* slice(3):用数组的di3位开始切出新数组。slice() 可接受两个参数,比如 slice(1, 3),左闭右开。
*
* sort():排序。默认地,sort() 函数按照字符串顺序对值进行排序。
* 对字母排序无妨,但是对数字排序会出错。比如25会大于100.
* 可以通过比值函数来修正(代码见下)。
*
* reverse():反转。
*
*
*/
//比值函数
d=[40,100,1,5,25,10];
d.sort();
document.write(d);//1,10,100,25,40,5
d.sort(function(a,b){return a-b});//如果想要降序排序,改为b-a即可
document.write(d+"<br>");//1,5,10,25,40,100
/**
* 利用排序后的数组找最高或最低值是低效的。我们可以用下面方法找最高/低值。
* Math.max.apply和Math.min.apply
*/
function MaxofArray(arr){
return Math.max.apply(null,arr);
}
f=[40,100,1,5,25,10];
document.write(MaxofArray(f)+"<br>");//100
//数组遍历
/**
* forEach():方法为每个数组元素调用一次函数(回调函数)。
* map():通过对每个数组元素执行函数来创建新数组。不会对没有值的数组元素执行函数。map() 方法不会更改原始数组。
*/
var ff=f.map(fun_f);
function fun_f(value){
return value*2;
}
document.write(ff+"<br>");//80,200,2,10,50,20
/**
* filter():创建一个包含通过测试的数组元素的新数组。
*/
// 大于20的元素创建一个新数组
var over20=ff.filter(fun_1);
function fun_1(value){
return value>20;
}
document.write(over20);//80,200,50
/**
* reduce() 在每个数组元素上运行函数,以生成(减少它)单个值。
*
* reduceRight() 方法在数组中从左到右工作。另请参见 reduce()。
*
* every() 方法检查所有数组值是否通过测试。
*
* some() 方法检查某些数组值是否通过了测试。
*
* indexOf() 方法在数组中搜索元素值并返回其位置。
*
* Array.lastIndexOf() 与 Array.indexOf() 类似,但是从数组结尾开始搜索。
*
* find() 方法返回通过测试函数的第一个数组元素的值。
*
* findIndex() 方法返回通过测试函数的第一个数组元素的索引。
*/
</script>
</head>
<body>
</body>
</html>

 


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43677405/article/details/112689277

随机推荐

mysql8.0

全角度解读企业主流数据库MySQL8.0-1关系数据库的特点:数据结构化,存储在二维表中。支持事务的原子性A,一致性C,隔离性I。持久性D.支持使用sql语言...

吃饱了打厨师 阅读(626)

关于SwiftUI的常见问题

译自:https://www.hackingwithswift.com/quick-start/swiftui/frequently-asked-questions-about-swif...

李发展 阅读(297)

打印1到最大的n位数

题目描述输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999。示范输入:n=1输出:[1,2,3,4,5,6,7...

Alfred king 阅读(143)

Openstack 之镜像管理服务Glance

Openstack一、Glance镜像服务基本概念1.什么是Glance,它的作用是什么?2.OpenStack镜像简介3.OpenStack镜像服务管理和存储镜像4.Op...

檀木香 阅读(240)

Vue计算属性

html文件methods为方法computed为属性会被缓存在浏览器<!doctypehtml><htmllang="en"><head>...

bug小白 阅读(309)