WPS数组

一、创建数组方法和数组的读取、修改、写入

数组是值的有序集合,其中的值叫作元素。每个元素有一个数值表示的位置,叫作索引,数组中的不同元素可以是不同数据类型。

function demo(){
   
	var arr1=[99,"人","abc",[3,4,5]];
	var arr2=[1+1,1>0,"abc"+"123"];
	var arr3=[];
	var s=JSON.stringify(arr1);//可以看到数组所有值
}

扩展操作符

扩展操作符(…)只能用在数组字面量和一些指定的函数中。扩展操作符可用于任何可迭代对象。

1.展开数组
var arr1=[1,…[45,3,2],100]
var arr2=[…“12232abcba”]
2.解构赋值
var [name,sex,…socre]=[“lily”,“女”,89,96,120]
3.复制数组
var arr3=[9,5,2,7]
var arr4=[…arr3]

Array()构造函数

1.Array()函数构造数组
	var arr1=new Array() 		//创建空数组
	var arr2=new Array(3)		//创建空数组,指定数组元素个数
	var arr3=new Array("3")	//创建有1个元素的数组
	var arr4=new Array(1,2,5)	//创建有3个元素的数组
	var arr5=Array.of(3) 		//创建有1个元素类型为数字的数组
2.构造数组时的数组处理
	var arr6=Array.from([..."abc123"])						//将可迭代对象转换为数组
	var arr7=Array.from(["Lucass","Lily","Bob"],(v)=>v+"-"+v.length)//对数组的迭代处理
function demo(){
   
	var arr1=new Array();
	var arr2=new Array(3);
	var arr3=new Array(3,4,5,"a");
	var arr4=Array.of(3);
	var arr5=Array.from([1,2,6,34],(n)=>n*10);
	//等同于var arr5=Array.from([1,2,6,34],function(n){return n*10})
	var arr7=Array.from(["Lucass","Lily","Bob"],(v)=>v+"-"+v.length)
}

获取单元格区域

如果读取两个连续及以上的单元格,则可以返回一个二维数组。如果读取的是单行单列则可以将二维数组转换为一维数组

var arr1=Range("a2:a5").Value();//读取单列
var arr1_1=Array.from(arr1,(n)=>n[0]);//单列,转换为一维数组
var arr2=Range("a2:c2").Value();//读取单行
var arr2_1=arr2[0];//单行,转换为一维数组
var arr3=Range("a2:c5").Value();//二维数组
function demo(){
   
	var ar1=Range("a2:a5").Value;//对象
	var arr1=Range("a2:a5").Value();//数组
	var arr=Array.from(Range("a2:a5").Value(),(v)=>v[0])//单列转一维数组
	Console.log(JSON.stringify(arr1));
	Console.log(JSON.stringify(arr));
	var arr2=Range("a2:c2").Value()[0];//单行转一维数组
	Console.log(JSON.stringify(arr2));
	var arr3=Range("a2:c5").Value();
	Console.log(JSON.stringify(arr3));
}

数组的读取、修改、写入

	var arr1=[543,33,99,100];
	var arr2=[["Bob",89],["Lucass",80],["Frank",100]];
	Console.log(arr1[2]);			//读取一维数组的单个值
	Console.log(arr2[1][0]);			//读取二维数组的单个值
	arr1[2]=8888;					//修改
	arr2[1][0]="ZengXianzhi";		//修改
	Range("a1:d1").Value2=arr1;	//向单行写入一维数组
	Range("a3:a5").Value2=[["北京"],[9000],[30]];//向单列写入二维数组
	Range("a7:b9").Value2=arr2;		//向多行多列写入二维数组

二、数组元素的添加和删除

push和pop(堆栈:后进先出)

function demo(){
   
	var arr=[122,2,6,99,10];
	arr.push(1000,300,600,900,[10,3]);
	var a=arr.pop();
	//每次只能删除一个,从后面删除,而且删除是从原数组删除,并不是新建一个数组
	var b=arr.pop();
	var c=arr.pop();
}

unshift和shift(队列:先进先出)

function demo(){
   
	var arr=["aa","bb","cc","dd","ee"];
	arr.push(100);
	arr.shift();
	arr.push(200);
	arr.shift();
	arr.push(300);
	arr.shift();
	arr.unshift(12,120,[1,2,3]);
	var a=arr.shift();
	var b=arr.shift();
	arr.unshift(120);
}

splice(添加、删除、替换)

var arr=["a","b","c"]
arr.splice(0,0,"Start");			//在前面插入元素
arr.splice(arr.length,0,"End");	//在后面插入元素
arr.splice(2,0,"Mid");			//在中间插入元素

arr.splice(0,1);					//删除前面元素
arr.splice(-1,1);				//删除前面元素
arr.splice(1,1);					//删除中间元素

arr.splice(1,1,"B")				//替换数组元素

应用

筛选二维数组

要求:筛选出年龄大于等于30的记录。

在这里插入图片描述

function 筛选(){
   
	let arr=Range("a2:d7").Value();
	let arr_new=[["姓名","性别","年龄","籍贯"]]
	for (let ar of arr){
   
		if (ar[2]>=30){
   
			arr_new.push(ar);
		}
	}
	Range("f1:i99").ClearContents();
	Range("f1").Resize(arr_new.length,4).Value2=arr_new;
}
筛选成绩大于90的记录

在这里插入图片描述

function 筛选出成绩大于90的记录(){
   
	Range("f2:i"+Rows.Count).ClearContents();
	let intnum = 2;
	var arr = Range("a2",Range("d"+Cells.Rows.Count).End(xlUp)).Value();
	arr_length=arr.length;
	var brr =[];
	var crr =[];
	for(let i = 0;i<=arr_length-1;i++){
   
		if(arr[i][1]>=90){
   
			brr.push([arr[i][0],arr[i][1]]);
		}
		if(arr[i][3]>=90){
   
			crr.push([arr[i][2],arr[i][3]]);
		}
	}
	Range("f2").Resize(brr.length,2).Value2 = brr;
	Range("h2").Resize(crr.length,2).Value2 = crr;
}

斐波那契数列

斐波那契数列,又称黄金分割数列,因数学家莱昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89… 这个数列从第3项开始,每一项都等于前两项之和。

function demo(){
   
	var arr=[0,1]
	for (let n=1;n<10;n++){
   
		var v1=arr.pop();
		var v2=arr.pop();
		var v3=v1+v2;
		arr.push(v2,v1,v3);
	}
}
function 斐波那契数列(){
   
	var ar =[1,1];
	for(let i 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

star星梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值