点击左上角文件-倒数第2个,点击选项-勾选默认JS开发环境
方法一:选择开发工具-WPS宏编辑器。方法二:按住Alt+F11
02函数
WPS JS每条语句后面可以有“;”,也可以没有“;”,程序都可以运行。
函数名可以用中文命名。
按F5默认会执行最后一个函数,如下代码就会输出MrFlySand-飞沙。
alert()就是窗口输出
console()就是控制台输出
DebugPrint()
注意:在代码中所有标点符号在要英文状态下输入。
function 输出2(){
alert("MrFlySand-飞沙-520")
}
function 输出(){
alert("MrFlySand-飞沙")
}
登录后复制
03单元格
31读取单元格/输出单元格
311选择工作表
SheetsItem()是选中工作表,excel默认的第一个工作表名称也是Sheet1。
SheetsItem(2)是选中第2个工作表。圆括号()里面可以是数字如果里面是一个数字n,表示它是第n个表。
SheetsItem("飞沙的成绩")是选中的是“飞沙的成绩”工作表,注意:中文飞沙的成绩要在英文双引号""里面。
312选择单元格
Range()选择单元格
Value2意思就是值或元素
WPS JS可以使用运算符“+”,"A"+2就是A2。注意:"A"&2是错误的语法
function 读取单元格(){
// 输出第1个工作表的A1单元格的值
alert(SheetsItem(1)Range("A1")Value2)
// 输出工作表名为Sheet2的A2单元格的值
alert(SheetsItem("Sheet2")Range("A"+2)Value2)
}
登录后复制
32运用库函数和给单元格赋值
Date()是获取当前时间的函数
SheetsItem(1)Range("A1")Value2 = Date()意思是:第1个的工作表中A1 = 现在的日期
function Fun(){
SheetsItem(1)Range("A1")Value2 = Date();
alert(SheetsItem(1)Range("A1")Value2);
}
登录后复制
33设置单元格的颜色和背景
function MyFun(){
//选中B4单元格
Range("B4")Select();
//圆括号里面就是选择B4单元格的文字
(obj=>{
//改变这个字体的颜色
objColor = 2;
})(SelectionFont);
//圆括号里面就是选择B4单元格的内部背景
(obj=>{
//改变这个背景的颜色
objColor = 65536;
})(SelectionInterior);
}
登录后复制

04 新建工作表
function 新建工作表(){
var sht=WorksheetsAdd(null,Sheets(SheetsCount));
shtName="mrflysand的数据分析表"; //工作表的名称
}
登录后复制
05 if判断
如果第1个工作表的A1单元格的值是1,输出“1”和“有1或2”;如果第1个工作表的A1单元格的值不是1或2,输出“没有1和2”。
其中||表示或
function 读取单元格(){
// 输出第1个工作表的A1单元格的值
alert(SheetsItem(1)Range("A1")Value2)
// 判断语句
if(SheetsItem(1)Range("A1")Value2==1 || SheetsItem(1)Range("A1")Value2==2){
alert("有1或2")
}else{
alert("没有1和2")
}
}
登录后复制

06循环
61 实例一
for(步骤1; 步骤2; 步骤4){步骤3},for循环的执行步骤:
步骤1:定义i的初始值
步骤2:判断i的值是否符合条件,如果符合条件,执行步骤3;如果不符合条件,则结束。
步骤3:每次要执行的内容1,如一些代码程序
步骤4:每次要执行的内容2,一般情况下是自增
function Loop(){
for(var i=1; i<=5; i++){
alert(i)
}
}
登录后复制
运行结果:
1 2 3 4 5
登录后复制
62 实例二
function LoopArr(){
var arr = ["公众号","小知识酷","关注不迷路"]
for(var i=0; i<=2; i++){
SheetsItem(1)Range("A"+(i+1))Value2 = arr[i]
}
}
登录后复制
运行结果
代码解释说明
i=0时,"A"+(i+1)=A1,Range("A1"),arr[0]="公众号"
i=1时,"A"+(i+1)=A2,Range("A2"),arr[1]="小知识酷"
i=2时,"A"+(i+1)=A3,Range("A3"),arr[2]="关注不迷路",循环就会停止。
07数组
Resize(row,list)选中多个单元格,相当于一个二维数组。Resize(1,5)表示1行5列的一维数组;Resize(2,5)表示2行5列的二维数组;Resize(5,5)表示5行5列的二维数组。
row:选中多少行
list:选中多少列
arraylength:数组的长度
array:数组名
length:长度,数组里面元素个数
function 一维数组(){
// 一维数组的定义
arr=["MrFlySand","飞沙",'QQ',2602629646];
alert("数组里面元素个数:"+arrlength )
// 只在在A1单元格写入MrFlySand
// 只是把第一个元素放在单元格中
SheetsItem(1)Range("A1")Value2 = arr;
// 只在在A6单元格写入MrFlySand
// Resize(1,1):第一个1表示只显示1行;第2个1表示数组中第1个元素
SheetsItem(1)Range("A6")Resize(1,1)Value2 = arr;
// 在A11:C11单元格写入"MrFlySand","飞沙",'QQ'
// Resize(1,4):1表示只显示1行;3表示数组中前第3个元素
SheetsItem(1)Range("A11")Resize(1,3)Value2 = arr;
// 在A16:D18单元格写入"MrFlySand","飞沙",'QQ',2602629646
// Resize(3,arrlength):3表示显示3行;arrlength表示数组中元素的个数,及长度为4
// 选中的格子读入的数据是一个一维数组
SheetsItem(1)Range("A16")Resize(3,arrlength)Value2 = arr;
}
登录后复制

71一维数组的输出
function arr(){
let arr= ["MrFlySand","飞沙",'QQ',2602629646];
SheetsItem(1)Range("A1")Resize(1,arrlength)Value2 = arr;
}
登录后复制
输出内容
72一维数组的遍历
function Fun(){
// 定义数组
const arr = new Set(["MrFlySand","飞沙",'QQ',2602629646]);
//i表示值,arr表示在这个数组中遍历
for (let i of arr) {
Consolelog(i);
}
}
function Fun1(){
let arr= ["MrFlySand","飞沙",'QQ',2602629646];
// 定义数组
//n表示值,arr表示在这个数组中遍历
for(let n of arr){
Consolelog(n)
}
}
登录后复制

73二维数组的输出
输出下方的表格
代码说明:
在WpsJs中数组的下标是从0开始的
二维数组的定义格式:函数名=[["1","2"],["3","4"],["5","6","7"]]就比如在1个数组(1个年级)中有3个数组(3个班),且这3个数组(3个班)中有2个不同的学生。
arrlength获取1个数组(1个年级)中有几个数组(n个班)
arr[0]length获取1班的人数,有2个学生,分别是1、2
arr[1]length获取2班的人数,有2个学生,分别是3、4
arr[2]length获取3班的人数,有3个学生,分别是5、6、7
function 二维数组(){
// 二维数组的定义
arr=[["MrFlySand","飞沙",'QQ',2602629646],[2602629646,'QQ',"飞沙","MrFlySand"]];
// 输出二维数组的行数和列数
alert("行数:" + arrlength + ",列数:"+arr[0]length)
// 输出二维数组的2行3列的值/输出第2个学生的英文名
alert("2行3列的值:" + arr[1][3]);
// 输出二维数组的1行/输出第1个学生的所有个人信息
SheetsItem(1)Range("A1")Resize(1,arr[0]length)Value2 = arr[0]
// 输出二维数组的2行/输出第2个学生的所有个人信息
SheetsItem(1)Range("A2")Resize(1,arr[0]length)Value2 = arr[1]
}
登录后复制

74数组输出行和输出列
arr1是一个一维数组,输出显示的是一横排。
arr2是一个二维数组,输出显示的是一竖排。
function arr(){
let arr= ["MrFlySand","飞沙",'QQ',2602629646];
SheetsItem(1)Range("A1")Resize(1,arrlength)Value2 = arr;
let arr1= ["MrFlySand","飞沙",'QQ',2602629646];
SheetsItem(1)Range("A3")Resize(4,4)Value2 = arr1;
let arr2 = [["MrFlySand"],["飞沙"],['QQ'],[2602629646]];
SheetsItem(1)Range("A8")Resize(4,1)Value2 = arr2;
}
登录后复制

以上代码输出内容
75使用循环输出列
function arr2(){
let arr= ["MrFlySand","飞沙",'QQ',2602629646];
for(var i=1,j=0; j<=arrlength; i++,j++){
SheetsItem(1)Range("A"+i)Value2 = arr[j];
}
}
登录后复制
08类的使用
// 声明类
class Arms{
// 构造函数,给属性传值
constructor(name, attack) {
thisname = name;
thisattack = attack;
}
//返回当前装备的属性值
toString() {
return '名称:' + thisname + ', 攻击力:' + thisattack + '';
}
}
function 类(){
//定义类
let arr=new Arms("AK47-MrFlySand",88)
// 输出类
alert(arrtoString())
SheetsItem(1)Range("A1")Value2 = arrtoString();
}
登录后复制

关注查看全文

css
java
vba
项目管理
python
泰迪犬怎么喂养
精选推荐
广告

Javascript中最常用的55个经典技巧wps
25下载·1评论
2009年3月22日
JS入门必看全套笔记
9下载·0评论
2018年2月5日
WPS-JS宏开发-基础知识-03-三大基本结构
510阅读·0评论·0点赞
2022年10月22日
WPS JS宏入门案例集锦
7388阅读·5评论·17点赞
2022年9月28日
wps_excel办公+JS宏编程教程基础到进阶+函数使用手册+excel中使用JS代码实现宏编程。
41下载·0评论
2022年7月28日
wpsjs插件开发-采用js和wps交互功能
2793阅读·0评论·0点赞
2022年7月20日
高清播放机,大全,详情!

精选推荐
广告
WPSJS加载项技术介绍
1760阅读·0评论·0点赞
2022年6月1日
WPS中JS宏简单运用
11W阅读·3评论·5点赞
2021年11月22日
WPS Excel JS宏简单使用
4041阅读·0评论·3点赞
2022年4月13日
WPS下 宏使用js编写及一些脚本
31W阅读·2评论·6点赞
2021年12月9日
javascript资料wps
13下载·0评论
2012年11月26日
WPS-JS宏开发-基础知识-01-初识
5888阅读·0评论·1点赞
2022年6月11日
WPS JS隔一列插入一列
241阅读·0评论·0点赞
2022年4月15日
wps开发工具vba
59下载·3评论
2015年10月29日
WPS宏插件使用教程
7140阅读·0评论·0点赞
2022年7月6日
Wps开发工具-宏的使用
12W阅读·0评论·0点赞
2022年1月6日
在线编辑、在线预览、在线转换,基于wpsjs + java + react / vue,无需任何插件,零安装
133W阅读·165评论·43点赞
2019年11月12日
WPSJS加载项在线模式和离线模式
1244阅读·0评论·0点赞
2022年6月1日
WPS JS 加载项
4037阅读·5评论·0点赞
2021年4月20日
去首页
看看更多热门内容
假定数组名为a,则a[0]就是第一个元素。
var ary=[1,2,3,4];
var a=aryshift();//a=1;ary=[2,3,4];
arrayObjslice(start, [end])
slice 方法返回一个 Array 对象,其中包含了arrayObj 的指定部分。
参数:start,截取数组开始下标。end截止的下标,但不包括end元素
扩展资料:
JavaScript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译),但由于V8的核心部分多数用JavaScript撰写(而SpiderMonkey是用C++),因此在不同的测试上,两者性能互有优劣。
与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。
参考资料来源:百度百科-javascript
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language= "Javascript ">
//
//联动下拉框的实现
//fnSetSubItem_Combo的参数分别为:
//objCombo:父项ID
//objSubCombo:子项ID
//arrSubItems:子项数组
//strDefValu:子项默认选项的value值
//
function fnSetSubItem_Combo(objCombo,objSubCombo,arrSubItems,strDefValue){
var i;
var bFound;
fnClearCombo(objSubCombo);
bFound=false;
for(i=0;i <arrSubItemslength;i++){
if(arrSubItems[i][1] + " " == objCombovalue + " "){
var oOption = documentcreateElement( "OPTION ");
objSubCombooptionsadd(oOption);
oOptiontext = arrSubItems[i][2];
oOptionvalue = arrSubItems[i][0];
if(strDefValue + " " == oOptionvalue + " "){
oOptionselected=true;
}
bFound=true;
}
}
if(!bFound && objSubCombooptionslength == 0)
objSubCombodisabled=true;
else
objSubCombodisabled=false;
//alert(objSubComboonchange());
if(objSubComboonchange)
objSubComboonchange();
}
function fnClearCombo(objCombo){
var i,intLen;
//objComboselectedIndex=-1;
if(objComboProced ==1){
intLen=objCombooptionslength;
for(i=0;i <intLen-objComboFirstIdx;i++){
objCombooptions[objComboFirstIdx]=null;
//objCombooptionsremove(0);
}
}
else{
objComboFirstIdx=objCombooptionslength;
objComboProced =1;
}
}
function fnSetCityProv(objParObj,objSubObj,arrCPC){
objSubObjoptionslength=0;
//取得当前选中的ID,递归取得所有子ID
for(i=0;i <arrCPClength;i++){
if(arrCPC[i][0] == objParObjvalue){
objSubObjoptions[objSubObjoptionslength]=new Option(arrCPC[i][2],arrCPC[i][0]);
}
}
fnGetCPCSubItems(objParObj,objSubObj,arrCPC,objParObjvalue,0);
}
//先根
function fnGetCPCSubItems(objParObj,objSubObj,arrCPC,intParID,intLV){
var i;
var strCaption;
for(i=0;i <arrCPClength;i++){
if(arrCPC[i][1] == intParID){
switch(intLV){
case 0:strCaption= " -- " + arrCPC[i][2];break;
case 1:strCaption= " -- " +arrCPC[i][2];break;
}
objSubObjoptions[objSubObjoptionslength]=new Option(strCaption,arrCPC[i][0]);
if(intLV <= 1)
fnGetCPCSubItems(objParObj,objSubObj,arrCPC,arrCPC[i][0],intLV+1)
}
}
}
</script>
<script language= "Javascript ">
//生成数组函数
function fnCreateArray(intHeight,intWidth){
var i,arrRet;
arrRet=new Array(intHeight);//生成数组的第一维
for(i=0;i <intHeight;i++){
arrRet[i] = new Array(intWidth);//生成数组的第二维
}
return arrRet;//返回生成的数组
}
//生成数组并赋值
/第二层数组:Array-SecondLevel(数组)/
var arrSecondLevel;
arrSecondLevel=fnCreateArray(9,3);
arrSecondLevel[0][0]= "0101 ";//value
arrSecondLevel[0][1]= "01 ";//父项value
arrSecondLevel[0][2]= "彩电 ";//text
arrSecondLevel[1][0]= "0102 ";
arrSecondLevel[1][1]= "01 ";
arrSecondLevel[1][2]= "冰箱 ";
arrSecondLevel[2][0]= "0103 ";
arrSecondLevel[2][1]= "01 ";
arrSecondLevel[2][2]= "音响 ";
arrSecondLevel[3][0]= "0201 ";
arrSecondLevel[3][1]= "02 ";
arrSecondLevel[3][2]= "内存 ";
arrSecondLevel[4][0]= "0202 ";
arrSecondLevel[4][1]= "02 ";
arrSecondLevel[4][2]= "处理器 ";
arrSecondLevel[5][0]= "0203 ";
arrSecondLevel[5][1]= "02 ";
arrSecondLevel[5][2]= "显示器 ";
arrSecondLevel[6][0]= "0204 ";
arrSecondLevel[6][1]= "02 ";
arrSecondLevel[6][2]= "鼠标 ";
arrSecondLevel[7][0]= "0301 ";
arrSecondLevel[7][1]= "03 ";
arrSecondLevel[7][2]= "书柜 ";
arrSecondLevel[8][0]= "0302 ";
arrSecondLevel[8][1]= "03 ";
arrSecondLevel[8][2]= "椅子 ";
/第三层数组:Array-ThirdLevel(数组)/
var arrThirdLevel;
arrThirdLevel=fnCreateArray(13,3);
arrThirdLevel[0][0]= "010101 ";//value
arrThirdLevel[0][1]= "0101 ";//父项value
arrThirdLevel[0][2]= "长虹 ";//text
arrThirdLevel[1][0]= "010102 ";
arrThirdLevel[1][1]= "0101 ";
arrThirdLevel[1][2]= "TCL ";
arrThirdLevel[2][0]= "010103 ";
arrThirdLevel[2][1]= "0101 ";
arrThirdLevel[2][2]= "创维 ";
arrThirdLevel[3][0]= "010201 ";
arrThirdLevel[3][1]= "0102 ";
arrThirdLevel[3][2]= "容星 ";
arrThirdLevel[4][0]= "010202 ";
arrThirdLevel[4][1]= "0102 ";
arrThirdLevel[4][2]= "海尔 ";
arrThirdLevel[5][0]= "010301 ";
arrThirdLevel[5][1]= "0103 ";
arrThirdLevel[5][2]= "创新 ";
arrThirdLevel[6][0]= "010302 ";
arrThirdLevel[6][1]= "0103 ";
arrThirdLevel[6][2]= "牙兰 ";
arrThirdLevel[7][0]= "020101 ";
arrThirdLevel[7][1]= "0201 ";
arrThirdLevel[7][2]= "金士顿 ";
arrThirdLevel[8][0]= "020102 ";
arrThirdLevel[8][1]= "0201 ";
arrThirdLevel[8][2]= "黑金刚 ";
arrThirdLevel[9][0]= "020201 ";
arrThirdLevel[9][1]= "0202 ";
arrThirdLevel[9][2]= "Intel ";
arrThirdLevel[10][0]= "020202 ";
arrThirdLevel[10][1]= "0202 ";
arrThirdLevel[10][2]= "AMD ";
arrThirdLevel[11][0]= "020301 ";
arrThirdLevel[11][1]= "0203 ";
arrThirdLevel[11][2]= "三星 ";
arrThirdLevel[12][0]= "020302 ";
arrThirdLevel[12][1]= "0203 ";
arrThirdLevel[12][2]= "索尼 ";
/初始化联动下拉框/
function fnStart(){
fnSetSubItem_Combo(documentform1firstLevel,documentform1secondLevel,arrSecondLevel, "0101 ");//第二层
fnSetSubItem_Combo(documentform1secondLevel,documentform1thirdLevel,arrThirdLevel, "010101 ");//第三层
//参数依次为:父项,子项,子项数组,子项默认值
/--三级联动初始化,分两次调用--/
}
windowonload=fnStart;//页面载入时调用联动下拉框初始化函数
//-->
</script>
</HEAD>
<BODY>
<form name= "form1 " style= "font-size:12px; ">
商品:
<select name= "firstLevel " onChange= "fnSetSubItem_Combo(this,secondLevel,arrSecondLevel) ">
<option value= "01 " selected> 家电 </option>
<option value= "02 "> 电脑配件 </option>
<option value= "03 "> 家居 </option>
</select>
<select name= "secondLevel " onChange= "fnSetSubItem_Combo(this,thirdLevel,arrThirdLevel) " style= "width:150px; "> </select>
<select name= "thirdLevel "> </select>
</BODY>
</HTML>
查看一下效果,应该很容易得到结果
有时我们可能需要重复一个包含多个节点的块,这时可以用 <template> 标签包裹这个块。这里的 <template> 标签只起到语义上的包裹作用,其本身不会被渲染出来。例如:
简单值 (primitive value) 即字符串、数字、boolean 等并非对象的值。对于包含简单值的数组,你可用 $value 直接访问值:
有时我们可能想要更明确地访问当前作用域的变量而不是隐式地回退到父作用域。你可以通过提供一个参数给 v-repeat 指令并用它作为将被迭代项的别名:
Vuejs 内部对被观察数组的变异方法 (mutating methods,包括 push(), pop(), shift(), unshift(), splice(), sort() 和 reverse()) 进行了拦截,因此调用这些方法也将自动触发视图更新。
下面是一个演示的例子,点击按钮的时候数据项会被移除
Vuejs 给被观察数组添加了两个便捷方法:$set() 和 $remove() 。
你应该避免直接通过索引来设置数据绑定数组中的元素,比如 demoitems[0] = {},因为这些改动是无法被 Vuejs 侦测到的。你应该使用扩展的 $set() 方法:
$remove() 只是 splice()方法的语法糖。它将移除给定索引处的元素。当参数不是数值时,$remove() 将在数组中搜索该值并删除第一个发现的对应元素。
当你使用非变异方法,比如filter(), concat() 或 slice(),返回的数组将是一个不同的实例。在此情况下,你可以用新数组替换旧的数组:
你可能会认为这将导致整个列表的 DOM 被销毁并重新渲染。但别担心,Vuejs 能够识别一个数组元素是否已有关联的 Vue 实例, 并尽可能地进行有效复用。
在某些情况下,你可能需要以全新的对象(比如 API 调用所返回的对象)去替换数组。如果你的每一个数据对象都有一个唯一的 id 属性,那么你可以使用 track-by 特性参数给 Vuejs 一个提示,这样它就可以复用已有的具有相同 id 的 Vue 实例和 DOM 节点。
例如:你的数据是这个样子的
那么你可以像这样给出提示:
在替换 items 数组时,Vuejs 如果碰到一个有 _uid: '88f869d' 的新对象,它就会知道可以直接复用有同样 _uid 的已有实例。 在使用全新数据重新渲染大型 v-repeat 列表时,合理使用 track-by 能极大地提升性能。
你也可以使用 v-repeat 遍历一个对象的所有属性。每个重复的实例会有一个特殊的属性 $key。对于简单值,你也可以象访问数组中的简单值那样使用 $value 属性。
在 ECMAScript 5 中,对于给对象添加一个新属性,或是从对象中删除一个属性时,没有机制可以检测到这两种情况。针对这个问题,Vuejs 中的被观察对象会被添加三个扩展方法: $add(key, value), $set(key, value) 和 $delete(key)。这些方法可以被用于在添加 / 删除观察对象的属性时触发对应的视图更新。方法 $add 和 $set 的不同之处在于当指定的键已经在对象中存在时 $add 将提前返回,所以调用 obj$add(key) 并不会以 undefined 覆盖已有的值。
v-repeat 也可以接受一个整数。在这种情况下,它将重复显示一个模板多次。 下面的例子将迭代3次。
有时候我们只需要显示一个数组的过滤或排序过的版本,而不需要实际改变或重置原始数据。Vue 提供了两个内置的过滤器来简化此类需求: filterBy 和 orderBy。
以上就是关于前端算法入门一:刷算法题常用的JS基础扫盲全部的内容,包括:前端算法入门一:刷算法题常用的JS基础扫盲、JS数组排序、js从字典里取到一个字,用什么算法最快等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)