JS

JS (数组)

2018-01-24  本文已影响0人  定格r

数组介绍

概念: 就是将若干个数据以一定的顺序放在一起的一个集合体,整体上就称之为“数组”。数组就是一列数据的有序排列的集合。

定义形式:

var  arr1 = new Array(1,  5,  8,  7,  2,  10); //定义了一个数组,其中具有6个数据

var  arr2 = new Array(); //只是单纯地定义了一个数组(名),但没有给值(数据),即现在是空的

var  arr3 = [1,  5,  8,  7,  2,  10]; //同arr1,只是一种简写的定义法。

var  arr4 = [ ]; //同arr2,也是一个空数组。

数组的使用:所谓使用其实是指对数组的每一项的使用。

取值:

var  v1 = arr1[0]; //取得数组arr1中的第一项,0叫做下标

var  v2 = arr3[3] + 10; //取得数组arr3中的第4项,4叫做下标

——所谓下标,其实就是数组的每一个数据的“顺序号”——从0开始编号,是连续的整数。

赋值:

arr1[0] = 10; //给数组arr1的第一项赋值为10,此时其实也就是相当于修改了其值,也可以说类似给一个变量重新赋值。

arr2[0]  = 22;

arr2[1]  = 33.3;

arr2[2]  = “444”;

arr2[3]  = “abc”;

arr2[4]  = true;

//此时arr2这个数组相当于这样: [ 22, 33.3, “444”, “abc”, true ]

数组的“视觉形象”(以arr3为例):

下标值: 0 1 2 3 4 5

数据值: 1 5 8 7 2 10

取得一个数组的长度——就是其中的数据的个数的语法为:

var  v1 = 数组名.length;

特别注意:数组的最大下标是数组的长度减1。

数组遍历的通常模式:

var len = 数组名.length;

for(var i = 0;  i < len;  i++)

{

//这里就是对数组的每一项的处理,每一项的写法是:  数组名[i]

}

数组遍历的另一种形式——for in循环语句。

for( var  v1  in  数组名arr1 )

{

//这里就是循环体,是专门针对数组arr1的遍历循环,其中v1的值就是表示数组的每一项的下标值。

//v1只是一个“临时变量”,代表每一项下标,依次会从0变化到数组的最大下标。

}

“二维”数组:

var  v1 = [2, 5, 1, 5];

var  v2 = [5, 1, 6, 8];

var  v3 = [8, 0, 9, 7];

var  v4 = [v1,  v2,  v3];

var  v5 = [ 

[2, 5, 1, 5],

[5, 1, 6, 8],

[8, 0, 9, 7]

];

——v4和v5其实没有任何区别,这两个都可以称为“二维数组“。

“二维”数组元素的操作:

取值:

var s1 = v5[0][1]; //5 //相当于取到v5这个数组中第一项(这还是一个数组)的第2项。

var s2 = v5[2][3] + 100; //107

赋值:

v5[0][1] = 200;

v5[2][3] = 300;

数组对象的常用方法:     

什么叫方法:方法其实就是函数!——只是如果一个函数“隶属于”某个“对象”,则称这个函数为该对象的方法。       

functionmaibao(){               

document.write(“啦啦啦,我是卖报的小行家,卖报啦卖报啦。”);

}

var myDreamGirl=

{

name: “小花”,

age:18,edu:”大学”,

sex:”女”,

nengli1: function (){document.write(“洗衣!”); } ,

nengli2: function (){ document.write(“做饭!”); } ,

nengli3: maibao

};

var v1 = [2, 5, 1, 5];

var v2 = [5, 1, 6, 8];

从严格的角度来说,数组也是一种对象——甚至字符串也是对象。

v1作为对象,就有属性和方法:       

属性:               

某数组.length:表示该数组对象的长度        方法:               

某数组.concat(其他数组):将两个数组连接起来成为一个新的“更长”的数组。

vars1 = v1.concat( v2 );      //此时s1是这样一个数组[2, 5, 1, 5, 5,1, 6, 8];                             

某数组.join(“字符串”):将数组中的所有项以指定的字符“串接起来”成为“长的”一个字符串。               

var s2 = v1.join(“//”);    //结果s2为字符串“2//5//1//5”                               

某数组.pop();        //将该数组的最后一项“移除”(删除),并返回该项数据,即该数组少了一项               

var s3 = v1.pop();                //结果v1只剩这个:[2,5,1]; s3的值是5               

某数组.push(新数据项d1); //将新的数据d1添加到该数组的最后位置,即数组多了一项。               

var s4 = v1.push( 55 );      //v1此时为:[2,5,1, 55], s4的值为新数组的长度,即4               

某数组.shift();                //将该数组的第一项“移除”(删除),并返回该项数据,即该数组少了一项               

var s5 = v1.shift();              //结果v1只剩这个:[5, 1,55]; s5的值是2                       

某数组.unshift(新数据项d1); //将新的数据d1添加到该数组的最前位置,即数组多了一项。               

var v6 = v1.unshift( 66 );    //v1此时为:[66, 5, 1, 55], s6的值为新数组的长度,即4

javascript语言是一门基于对象的语言。

字符串对象:

var str1 = new String(“abcdefgabc”); //这是一个“字符串对象”

var str2 = “abcdefgabc”; //这个字符串跟前面str1几乎没有区别

字符串对象的属性:

.length——获得一个字符串的长度(也就是字符个数)

字符串对象的方法:

1. str1.charAt( n ); ——获得字符串str1中位置为n的那个字符(字符的位置也是从0开始算起)var s1 = str1.charAt( 3 ); //s1的结果是:”d”

2. str1.toUpperCase(); ——获取str1全部转换为大写的结果

var s2 = str1.toUpperCase(); //s2的结果是:”ABCDEFGABC”

3. str1.toLowerCase(); ——获取str1全部转换为小写的结果

var s3 = str1.toLowerCase(); //s3的结果是:”abcdefgabc”

4. str1.replace(“字符1”, “字符2”); ——将str1中的“字符1”替换为“字符2”

var s4 = str1.replace(“cd”, “999”); //s4的结果是:”ab999efgabc”

5. str1.indexOf(“字符1”); ——获得“字符1”在str1中第一次出现的位置,如果没有出现,结果是-1

var s5 = str1.indexOf(“ab”); //s5的结果是0

6. str1.lastIndexOf(““字符1”); ——获得“字符1”在str1中最后一次出现的位置,如果没有出现,结果是-1

var s6 = str1.lastIndexOf(“ab”); //s6的结果是7

7. str1.substr(n, m ) ——取得str1中从位置n开始的m个字符,m可以省略,则表示从位置n一直取到字符串的最后——注意,这种“取”并不影响str1这个原始字符

var s7 = str1.substr(2, 4); //s7为:”cdef”

8. str1.substring( n, m )——取得str1中从位置n到位置m的前一个字符。

var s8 = str1.substring(2, 4); //s8为:”cd”

9. str1.split(“字符1”) ——将str1以指定的“字符1”为分界,分割成一个数组,结果是一个数组

var s9 = str1.split(“b”); //s9的结果是一个数组:[“a”, “cdefga”, “c”]

Math对象

Math对象是一个系统内部定义的对象,我们无需去“新建一个Math对象”——跟string对象和array对象不同。即Math对象是直接使用的。

我们学习Math对象,无非是学习一些常见的数学处理函数——这里当就叫做方法了:

属性:

Math.PI——代表圆周率这个“常数”

方法:

1. Math.max(数值1,数值2,…..) ——求得若干个数值中的最大值。

2. Math.min(数值1,数值2,…..) ——求得若干个数值中的最小值。

3. Math.abs( 数值1) ——求得数值1的绝对值

4. Math.pow( x,y) ——求得数值x的y次方,也就是“幂运算”

5. Math.sqrt( x ) ——求得x的开方

6. Math.round( x ) ——求得x的四舍五入的结果值;

7. Math.floor( x ) ——求得x的向下取整的结果,即找到不大于x的一个最大的整数。

a) Math.floor( 3.1 ) è 3

b) Math.floor( 3.8 ) è 3

c) Math.floor( 3 ) è 3

d) Math.floor( -3.1 ) è -4

e) Math.floor( -3.8 ) è -4

8. Math.ceil( x ) ——求得x的向上取整的结果,即找到不小于x的一个最小的整数

a) Math.ceil( 3.1 ) è 4

b) Math.ceil( 3.8 ) è 4

c) Math.ceil( 3 ) è 3

d) Math.ceil( -3.1 ) è -3

e) Math.ceil( -3.8 ) è -3

9. Math.random() ——获得一个0~1范围中的随机“小数”,含0,但不含1

//获得两个整数(n1,n2)之间的随机整数的通用做法:

var v1 = Math.random()

v1 = v1 * (n2-n1+1);

v1 = Math.floor( v1 ) + n1; //此时v1就是结果

//将上述3步写出一步就是(通用公式):

var v1 = Math.floor( Math.random() * (n2-n1+1) ) + n1

JS (数组) JS (数组)

昨日回顾

数组(Array)对象:

概念:若干个数据的有序集合。

定义:

var a1 = new Array(数据1,数据2,….. );

var a2 = [数据1,数据2,…..];

var a3 = new Array();

var a4 = new Array(5); //定义一个具有5个元素的数组(此时并没有给数组赋值)——注意,此时只能是一个正整数。

对比:var a5 = new Array(“abc”); //定义一个数组,其中只有元素”abc”——含义同a1

使用:

取值:

var v1 = a1[0]; //取得数组元素0,取得数组的第一项(的值)

赋值:

a3[0] = 数据1;

a3[1] = 数据2;

遍历(for循环):

var len = a1.length;

for(var  i = 0;  i<len;  i++){。。。。。}

遍历(for in循环):

for( var  temp  in  a1){……} //temp会依次取到数组a1的下标。

“二维数组”:

var a6  = [  [ 11,12, 13 ],  [21, 22,  23],  [31, 32, 33] ];

属性:

.length

方法:

.concat(): 连接多个数组

.join(): 将一个数组的每一项“串”成一个字符串

.pop(): 删除数组的最后一项

.push(): 将一个新项添加到数组的末尾

.shift(): 删除数组的第一项

.unshift(): 将一个新项添加到数组的开头

字符串(String)对象:

定义:

var  str1 = new  String(“abcdefgabc”);

var  str2 = “abcdefgabc”;

属性:

.length

方法:

.charAt() 取出某个位置上得到一个字符

.toUpperCase() 将字符串大写

.toLowerCase() 将字符串小写

.indexOf() 找出一个字符串在另一个字符串中的第一次出现位置,如果不存在,结果是-1

.lastIndexOf() 找出一个字符串在另一个字符串中的最后一次出现位置,如果不存在,结果是-1

.replace() 将字符串中的某个字符(串)替换为另一个字符(串)——实际只能替换一次。

.substr() 取出字符串中从某个位置开始的多少个字符

.substring() 取出字符串中从某个位置到某另一个位置的字符

.split(): 将一个字符串“分割”为一个数组

Math对象:

Math.abs() 绝对值

Math.max() 最大值

Math.min() 最小值

Math.pow() 幂运算

Math.sqrt() 取开方

Math.round() 四舍五入

Math.floor() 向下取整

Math.ceil() 向上取整

Math.random() 取得0-1之间的随机小数(含0,不含1)

取得任意两个整数之间(n1,n2)的随机整数的通用公式:

Math.floor( Math.random()*( n2 – n1 + 1 ) ) + n1;

上一篇 下一篇

猜你喜欢

热点阅读