js基础--javascript基础概念之数组(二)

js基础--javascript基础概念之数组

数组栈方法

数组可以像栈一样。栈是一种先进后出的数据结构,最先添加的数据最后一个出来。栈方法添加数据也称为 推入  移除数据称为 弹出。

js为数值栈方法提供了 push()   和  pop() ;  两个方法。

push()

push() 方法接受参数就是你要添加进入到数组的值。push()  方法会将他们逐一添加到数组的末尾  数组的length属性会跟着更新数据。

*push(多个数组元素值) 返回的修改后的数组长度

var array = [
‘kin‘,
‘cheong‘,
‘change‘,
‘hello‘,
‘haha‘,
‘hi‘
]; 
var arr_L = array.push(‘myNama‘,‘Age‘);//向数组推入两项值。返回的是推入数组项值后 数组的长度
alert(arr_L);//8

使用push方法等价于

array[array.length] = ‘NewValue‘;//等于是array[8] = ‘NewValue‘
//alert(array[array.length-1]);//NewValue

pop()

*pop() 在数组末尾移除一项,返回移除的值

 alert(array.pop());//NewValue
 alert(array.length + "   " + array[array.length-1]);// 8  Age length 跟着减少。

使用pop方法等价于

array.length = array.length-1;
//减小数组长度。删除了最后一个数组

队列数据结构

* 数组列队方法。先进先出

* 队列数据结构的访问是先进先出(FIFO--First-In-First-Out)。队列在列表的末端添加项,从列表的前段移除项。

* shift() 移除数组中的第一项

* unshift() 在数组最前面添加一项

alert(array.shift());//kin 已经将第一项删除  删除的值为kin 返回的正式删除的值
alert(array.unshift(‘kin‘));//8在数组最前端添加了一项,返回数值当前长度

重排序方法

*reverse():纯粹的倒序 将数组内的所有值倒序处理。

*

*sort():按升序排序——它会调用每一项的String()方法,然后进行比较。因为它是 基于字符的比较.

*

alert(array[array.length-1]);//Age
array.reverse();
alert(array[0]);//Age
alert(array[array.length-1]);//kin
*/
array.sort();
var value = ‘‘;
for(var V in array){
value += array[V] +"    ";
}
document.write(value);//Age change cheong haha hello hi kin myNama按照字母顺序排序

对于比较数值的数组来说 如

var Num_Arr = [
13,1,5,7,9,3,11,15
];
/*
Num_Arr.sort();
var N = ‘‘;
for(var v in Num_Arr){
document.write(Num_Arr[v]+"  ");//1 11 13 15 3 5 7 9 
}

大多数时候你不会想要这样的结果,因此 你可以在sort中添加一个比较运算的函数。

Num_Arr.sort(function(v1,v2){
if(v1>v2){
return 1;
}else if(v1<v2){
return -1;
}else{
return 0;
}
});
var N = ‘‘;
for(var v in Num_Arr){
document.write(Num_Arr[v]+"  ");//1 3 5 7 9 11 13 15
}

有了比较函数。就可以随心所欲的对数组进行升降序排序了 想要进行降序?如下:将比较结果调过来即可。

Num_Arr.sort(function(v1,v2){
if(v1>v2){
return -1;
}else if(v1<v2){
return 1;
}else{
return 0;
}
});
var N = ‘‘;
for(var v in Num_Arr){
document.write(Num_Arr[v]+"  ");//15 13 11 9 7 5 3 1
}

在比较函数中,返回1,-1,0 让sort方法对数值值进行比较。

Num_Arr.sort(function(v1,v2){
return v1-v2;
//换成v2 - v1 则得到相反的结果。
});
for(var v in Num_Arr){
document.write(Num_Arr[v]+"  ");//1 3 5 7 9 11 13 15
}

对于纯数值类型的。这样更简单

当数组中包含有字符串和数值两个类型值时 。下面的函数方法却无效。

var Str_Arr = [
3,‘a‘,‘c‘,11,15,‘b‘
];
Str_Arr.sort(function(v1,v2){
return v1-v2;
});
for(var v in Str_Arr){
document.write(Str_Arr[v]+"  ");// 3 a c 11 15 b
}
var array = Array(‘kin‘);
alert(array);
alert(array.length);

数组的操作方法

concat()

concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

该方法也用于复制数组。concat() 在当前数组中创建一个副本。其它操作都在创建的副本中执行。所以,不会对原来的数组产生影响。使用这个方法,可以给它传递参数,参数可以是数值,数组。数量不限。如果是值。则被添加到数组末尾。如果是数组,也将两个数组进行连接。

如:

var  arr1 = [
‘a‘,
‘b‘,
‘c‘
];
var arr2 = [
‘d‘,
‘e‘,
‘f‘
];
var arr3 = arr1.concat(arr2);//返回一个新的数组。这个数组包含了arr1  和 arr2 中的所有项值。
document.write(arr3);//a,b,c,d,e,f

关于concat()  这个方法还可以拼接值如;

var arr3 = arr1.concat(‘数组一‘,arr2,‘数组二‘);
document.write(arr3);//a,b,c,数组一,d,e,f,数组二

slice()

slice() 方法可从已有的数组中返回选定的元素。

Array.slice(数组的开始,数组的结束)

slice() 方法是针对一个数组中的一个或多个数组项值复制到一个新的数组中去,slice() 方法不会对原数组产生影响。slice() 可包含两个参数,第一个是数组值截取开始位置,这是必要参数,第二个是数组的结果位置,这是选要参数。如果只传递了一个值,则从该值到数组的最后一个项值。返回的是一个新的数组。

如:

var array = [‘kin‘,‘cheong‘,‘hello‘,‘haha‘,‘hi‘];
var arr = array.slice(1,4);//截取数组中1到4的值。返回的新数组给变量arr引用
document.write(arr);//cheong,hello,haha

当只有一个参数的时候。

var arr = array.slice(2);//从数组中第三个值到数组的最后一个。
document.write(arr);//‘hello‘,‘haha‘,‘hi‘

当参数为负数时。

var arr = array.slice(-2);//从后面算起  倒数第二个值到最后一个值。总共就两个数组项值
document.write(arr);//haha,hi
var arr1 = array.slice(-4,-1);//从后面算起  倒数第四个值到倒数第一个值。 总共三个数组项值。
document.write(arr1);//cheong,hello,haha

注意:

如果slice() 方法中有负数。可以用数组的总长度加上负值参数,例如  在一个拥有7个项值的数组。使用 slice(-5,-2);  相当于 7+-5 = 2; 7+-2 = 5;   也就是 slice(2,5);  另外,slice() 中参数2 不能大于 参数1  如: slice(5,2); 这样返回的数组是一个空数组。

splice()

splice() 方法主要用途是向数组中插入项,使用有3种方法。

定义一个数组:

var array = [‘kin‘,‘cheong‘,‘hello‘,‘haha‘,‘hi‘];

删除: 可以删除多个项,需要传递两个参数,一个是删除的开始位置。一个是结束位置。

如:

array.splice(1,3);//删除数组项1到3的值
alert(array);//kin,hi

插入: 可以向指定的位置插入任意数量的数组项值,需要提供3个参数。一个是插入的起始位置,要删除的项数(0 表示不需要删除直接添加),要插入的值。任意多项。可以是任何数据类型

如:

array.splice(1,0,‘new‘,‘value‘,[‘array1‘,‘array2‘]);
//在数组中项值1后面不删除任何值,插入值‘new‘ ‘value‘ 和数组[‘array1‘,‘array2‘]
document.write(array);//kin,new,value,array1,array2,cheong,hello,haha,hi

替换:向指定位置删除任意多的项,然后插入任意多的项值,来实现替换。需要提供3个参数。一个是插入的起始位置,要删除的项数,要插入的值。任意多项。可以是任何数据类型。

如:

array.splice(1,3,‘new‘,‘value‘,[‘array1‘,‘array2‘]);
//在数组中项值1后面删除3个值,替换成值‘new‘ ‘value‘ 和数组[‘array1‘,‘array2‘]  相当于cheong,hello,haha, 三个值替换成new,value,array1,array2,
document.write(array);//kin,new,value,array1,array2,hi

js基础--javascript基础概念之数组(二),布布扣,bubuko.com

时间: 2024-10-13 16:21:39

js基础--javascript基础概念之数组(二)的相关文章

js基础--javascript基础概念之数组

js基础--javascript基础概念之数组 在ECMAScript 中 ,数组是很常用的数据类型,js中的数组和其他很多语言的数组有明显的区别.js的数组可以保持任何类型的数值,一个数组中可以保存着多个不同类型的数值.js数组大小(长度)是可以调整的.可以随着数据的添加自动增长数组长度. 创建数组: 一.数组字面量 数组字面量由一对包含数组项的方括号[]表示. var array = [ 'kin', 'cheong', 'change', 'hello', 'haha', 'hi' ];

js基础--javascript基础概念之语句(二)

js基础--javascript基础概念之语句(二)label,break,continue.. break .  continue 语句. break  continue 语句用于在循环中精确控制代码的执行,其中break语句会立即退出循环,执行循环后面的语句. continue 则退出循环后返回到再次进入循环中. 如: var num = 0; for(var i = 0; i<=100; i++){ if(i >= 10){ break; } num = i; } alert(num);

js基础--javascript基础概念之语法

掌握一门语言 必须先掌握它的语法! javascript 的语法和C.Java.Perl 的语法有些相似.但是比它们更加宽松. javascript 中的一切都是严格区分大小写的.例如变量: demo 和 Demo 两个变量是完全不同的. javascript 标示符,所谓标示符 是指 变量.函数.属性 的名字或函数的参数.标示符的格式是按照以下规则组合的一个或多个字符. 1.第一个字符必须是字母,下划线,或 $ 符号. 2.其他字符可以是字母.下划线.$ . 或数字. 注意 不能把关键字 保留

js基础--javascript基础概念之变量与作用域

js基础--javascript基础概念之变量.作用域 javascript按照ECMA-262 的定义,变量与其他语言变量有所不同.js变量时松散的,不需要事先定义变量类型的.这使得他只是一个保存特定值的一个名称.变量与其数据类型可以在脚本的生命周期内改变. 还有明白几点: JavaScript的变量作用域是基于其特有的作用域链的,JavaScript没有块级作用域. 基本类型和引用类型的值 ECMAScript 的变量有两种不同的数据类型:分别是 基本数据类型值 和 引用类型值 : 基本数据

js基础--javascript基础概念之语句

js基础--javascript基础概念之语句 ECMA-262定义了一组语句(流程控制语句) 语句定义了EMCAScript 语法. 常见的if语句. 语法: if(condition) statement1 else statement2 其中.Condition 可以是任意表达式.而且对这个表达式求值的结果不一定是布尔值.因为script 会自动调用boolean 将值转换为布尔值.如果condition 的值是 true .则执行statement1 语句  否则  执行 stateme

前段基础----JavaScript基础

一.JavaScript概述 1,JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成.后改名叫Javascript 微软随后模仿在其IE3.0的产品中搭

11-23网页基础--JavaScript基础知识

第一课 JavaScript简介 一.定义:JavaScript是脚本语言,需要宿主文件,它的宿主文件是html文件. JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编程代码. JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行. 二.用法:在html中的位置有三块:1)head里面:2)body里面:3)</html>之后,为了保险起见一般写在</html>之后.<script language=&quo

一个简单的、面向对象的javascript基础框架

如果以后公司再能让我独立做一套新的完整系统,那么我肯定会为这个系统再写一个前端框架,那么我到底该如何写这个框架呢? 在我以前的博客里我给大家展示了一个我自己写的框架,由于当时时间很紧张,做之前几乎没有完整的思考过我到底该如何去写这个框架,所以事后对于这个框架我有很多遗憾之处,当我重构过一次代码后我就没再做过任何重构操作的工作,因为我根本不想再去给它修修补补了,之所以有这个想法,就是我对我写的那个框架的基础架构不满意. 为什么不满意这个基础架构了?我们先来看看我当时封装框架的方式: (functi

javascript基础学习(二)

javascript的数据类型 学习要点: typeof操作符 五种简单数据类型:Undefined.String.Number.Null.Boolean 引用数据类型:数组和对象 一.typeof操作符 typeof操作符用来检测变量的数据类型,操作符可以操作变量也可以操作字面量. 对变量或值运用typeof操作符得到如下值: undefined----如果变量是Undefined类型: boolean-------如果变量是Boolean类型: number-------如果变量是Numbe