数组
本章内容
- 数组的使用
- 树形菜单
第一节 数组的使用
数组:用于存储一组数据,可以对数据进行批量处理
语法:
//创建长度为5的数组空间
var ary = new Array(6);
<script type="text/javascript">
var num = 100;
//创建长度为5的数组空间
var ary = new Array(6);
//为数组元素赋值
ary[0]=100;
ary[1]="abc";
ary[2]= new Date();
ary[3]= true;
ary[4]=200;
//ary.length: 数组的长度
alert(ary.length);
//alert(ary[2]);
for(var i=0;i<ary.length;i++){
alert(i+" "+ary[i]);
}
</script>
方法 | 描述 |
---|---|
concat() | 连接两个或更多的数组,并返回结果。 |
copyWithin() | 从数组的指定位置拷贝元素到数组的另一个指定位置中。 |
entries() | 返回数组的可迭代对象。 |
every() | 检测数值元素的每个元素是否都符合条件。 |
fill() | 使用一个固定值来填充数组。 |
filter() | 检测数值元素,并返回符合条件所有元素的数组。 |
find() | 返回符合传入测试(函数)条件的数组元素 |
findIndex() | 返回符合传入测试(函数)条件的数组元素索引。 |
forEach() | 数组每个元素都执行一次回调函数。 |
from() | 通过给定的对象中创建一个数组。 |
includes() | 判断一个数组是否包含一个指定的值。 |
indexOf() | 搜索数组中的元素,并返回它所在的位置。 |
isArray() | 判断对象是否为数组。 |
join() | 把数组的所有元素放入一个字符串。 |
keys() | 返回数组的可迭代对象,包含原始数组的键(key)。 |
lastIndexOf() | 搜索数组中的元素,并返回它最后出现的位置。 |
map() | 通过指定函数处理数组的每个元素,并返回处理后的数组。 |
pop() | 删除数组的最后一个元素并返回删除的元素。 |
push() | 向数组的末尾添加一个或更多元素,并返回新的长度。 |
reduce() | 将数组元素计算为一个值(从左到右)。 |
reduceRight() | 将数组元素计算为一个值(从右到左)。 |
reverse() | 反转数组的元素顺序。 |
shift() | 删除并返回数组的第一个元素。 |
slice() | 选取数组的一部分,并返回一个新数组。 |
some() | 检测数组元素中是否有元素符合指定条件。 |
sort() | 对数组的元素进行排序。 |
splice() | 从数组中添加或删除元素。 |
toString() | 把数组转换为字符串,并返回结果。 |
unshift() | 向数组的开头添加一个或更多元素,并返回新的长度。 |
valueOf() | 返回数组对象的原始值 |
reverse用法:
var arr = [34,34,34,34,35];
console.log(getNum(arr))
function getNum(arr){
arr1=arr.reverse()
return arr1;
}
利用函数封装一个数组计算总成绩
var arr=Array(5)
for(var i=0;i<5;i++){
var num= Number(prompt("输入第"+(i+1)+"个人的成绩"));
arr[i]=num;
}
console.log(arr)
alert(arr.length)
alert("输入完毕,计算总成绩");
var sum=0
for(var j=0;j<arr.length;j++){
sum+=arr[j];
}
console.log(sum)
第三节 数组深入
数组的定义方式
//数组深入
//传入单个数组时,代表创建数组的长度
var ary= Array(5);
// alert(ary.length+" "+ary[0])
//传入的单个数组不是整数,此时代表有一个初始化数据,数组长度为1;
var ary =new Array("abc");
// alert(ary.length+" "+ary[0])
//直接用初始数据创建数组,数组的长度就是数据的个数
var ary= new Array(5,2,"abc","张三")
// alert(ary.length+" "+ary[0]+" "+ary[1]);
//数组初始没有空间
var ary =new Array();
// alert(ary.length)
//通过赋值方式,可以让数组动态创建空间,没有赋值的空间值为undefined
ary[3]=100;
alert(ary.length+" :" +ary[0]+" "+ary[1]+" "+ary[2]+" "+ary[3]);
document.write(ary)
var ary = [10,20,"abc",3,1.8];
//join:用中划线将数组中的数据拼接到一起,返回拼接后的字符串
var str = ary.join("-");
alert(str+" "+typeof(str));
alert(ary+" "+typeof(ary));
//concat:将两个数组中的数据拼接成一个新的数组
var ary = [1,2,3];
var ary2 = ["a","b","c"];
var ary3 = ary.concat(ary2);
document.write("ary:"+ary+"<br/>");
document.write("ary2:"+ary2+"<br/>");
document.write("ary3:"+ary3+"<br/>");
//sort:将数组中的数据按字符次序(不是按数值)进行排序
var ary=[3,5,400,200,4]; //[5,4,3,1,2];
ary.sort();
document.write(ary);
//reverse:翻转数组中的数据
var ary = [5,2,1,3,4];
document.write(ary+"<br/>");
ary.reverse();
document.write(ary);
//push:在数组的尾部添加数据
var ary = [];
ary.push("abc");
ary.push(100);
ary.push("张三");
ary.push(1.8);
document.write(ary);
//splice:实现数组的删除和插入
//splice(位置,删除数据的个数,插入的数据1,插入的数据2,...)
var ary = [10,20,30,"abc","李四"];
//从1的位置删除3个数据
ary.splice(1,3);
//从2的位置删除一个数据,并在这个位置上插入"郭靖","黄蓉",18
ary.splice(2,1,"郭靖","黄蓉",18);
document.write(ary);
var ary = [10,20,"abc",3,1.8];
//join:用中划线将数组中的数据拼接到一起,返回拼接后的字符串
var str = ary.join("-");
alert(str+" "+typeof(str));
alert(ary+" "+typeof(ary));
//concat:将两个数组中的数据拼接成一个新的数组
/*var ary = [1,2,3];
var ary2 = ["a","b","c"];
var ary3 = ary.concat(ary2);
document.write("ary:"+ary+"<br/>");
document.write("ary2:"+ary2+"<br/>");
document.write("ary3:"+ary3+"<br/>");*/
//sort:将数组中的数据按字符次序(不是按数值)进行排序
var ary=[3,5,400,200,4]; //[5,4,3,1,2];
ary.sort();
document.write(ary);
//reverse:翻转数组中的数据
/*var ary = [5,2,1,3,4];
document.write(ary+"<br/>");
ary.reverse();
document.write(ary);*/
//push:在数组的尾部添加数据
var ary = [];
ary.push("abc");
ary.push(100);
ary.push("张三");
ary.push(1.8);
document.write(ary);
//splice:实现数组的删除和插入
//splice(位置,删除数据的个数,插入的数据1,插入的数据2,...)
var ary = [10,20,30,"abc","李四"];
//从1的位置删除3个数据
ary.splice(1,3);
//从2的位置删除一个数据,并在这个位置上插入"郭靖","黄蓉",18
ary.splice(2,1,"郭靖","黄蓉",18);
document.write(ary);
使用splice实现有序数组的数据插入,插入之后要保证数组依然有序:
//在有序数组中插入数据,并保证数组依然有序
//关键:找到原有数组,第一个比要插入的数据大的数据的位置
var ary=[10,20,30,40,50];
//输入要插入的数据
var num = Number(prompt("请输入要插入的数据:",""));
//定义变量,记录数据中,第一个比要插入的数据大的位置
var pos =-1;
for(var i=0;i<ary.length;i++){
//将数据中的数据和要插入的数据挨着比较
if(ary[i]>num){
//当找到第一个比插入的数据打的数据时,记录这个数据的位置,并退出循环
pos =i;
break;
}else{
pos=i+1
}
}
//循环之后,找到要插入的位置
//使用splice函数,将要插入的数据,插入到指定位置
ary.splice(pos,0,num);
//输入插入后的结果
document.write(ary);
2.循环输入5个分数存入数组,如果分数输入有误(小于0,大于100),要提示输入错误,如果无误则输出数组
var arr = Array(5)
var flag = true;
for (var i = 0; i < 5; i++) {
var score = Number(prompt("输入第" + (i + 1) + "个成绩"));
if (score < 0 || score > 100) {
flag=false;
break
}
arr[i]=score
}
if(flag){
console.log(arr)
}else{
alert("输入有误")
}
// 3.循环输入9个数字存入数组,然后3个一排输出
var arr=Array(9);
var j=0
for(var i=0;i<9;i++){
var num= Number(prompt("输入第"+(i+1)+"个数"))
arr[i]=num;
j++;
document.write("数组的数"+arr[i])
if(j%3==0){
document.write("<br>")
}
}
//4.循环输入5个数字,统计最大值,最小值,最大值的位置和最小值的位置
let arr = Array(5);
let max=0;
let min=1000;
let maxaddress=-1
let minaddress=-1
for(let i=0;i<arr.length;i++){
let num = Number(prompt("输入第"+(i+1)+"个数"," "))
arr[i]=num;
if(arr[i]>max){
max=arr[i];
maxaddress=i
}
if(arr[i]<min){
min=arr[i];
minaddress=i
}
}
console.log("最大值"+max+" "+maxaddress+"<br>");
console.log("最小值"+min+" "+minaddress)
console.log(arr)
1.var ary = [10,20,30,40,50,10,20,34,56,50] 将数组中的去重,返回去重之后的数组
var ary=[10,20,30,40,50,10,20,34,56,50]
function quChong(ary){
for(var i=0;i<ary.length;i++){
for(var k=i+1;k<ary.length;k++){
if(ary[i]==ary[k]){
ary.splice(k,1)
}
}
}
console.log(ary)
}
quChong(ary);
标签:ary,write,数组,var,document,数据
From: https://www.cnblogs.com/zcf94264/p/16909412.html