Array的一些方法:
//ECMA-262 3rd. Edition
function Array(){};
Array.prototype = new Object();
Array.prototype.length = 1;
Array.prototype.concat = function(args){return [];};
Array.prototype.join = function(seperator){return [];};
Array.prototype.pop = function(){return new Object();};
Array.prototype.push = function(args){};
Array.prototype.reverse = function(){return [];};
Array.prototype.shift = function(){return new Object();};
Array.prototype.slice = function(start, end){return [];};
Array.prototype.sort = function(funct){return [];};
Array.prototype.splice = function(start, deletecount, items){return [];};
Array.prototype.unshift = function(start){return [];};
一切从声明一个数组开始:
var arr1 = new Array();
var arr2 = new Array(4);//长度为4的数组
var arr3 = new Array("nico", "a", 4);
var arr4 = [ "nico", "a", 4.5, true ];
Array与String
1、toString()和valueOf()用逗号将数组连接在一起
arr4.toString() //nico,a,4.5,true
2、join接受一个参数,将数组用其拼接成字符串
console.log(arr4.join(",")); //nico,a,4.5,true
console.log(arr4.join("-")); //nico-a-4.5-true
3、split()则是将字符串分割成一个数组
var arr = "nico,a,4.5,true".split(",");
console.log(arr.constructor == Array);
console.log("red".split(""));
Array新增
1、数组新增有几个方法,当然最直接的是在数组下标赋值:
var arr = [ "nico", "a", 4.5, true ];
arr[arr.length] = "b";
arr[arr.length] = "c";
console.log(arr.toString()); //nico,a,4.5,true,b,c
2、push是向array末尾新增元素,接受一个数组或普通对象
var arr = [ "nico", "a", 4.5, true ];
arr.push("b");
console.log(arr.toString()); //nico,a,4.5,true,b
arr.push([1,2,"b"]);
console.log(arr.toString()); //nico,a,4.5,true,1,2,b
3、concat也可以接受数组或普通对象,但是不会修改原有的数组,需要返回一个新的数组
var arr = [ "nico", "a", 4.5, true ];
arr.concat("a");
console.log(arr.toString()); //nico,a,4.5,true
var arr1 = arr.concat(["a", 2]);
console.log(arr1.toString()); //nico,a,4.5,true,a,2
Array删除
1、pop是对数组最后一个元素
var arr = [ "nico", "a", 4.5, true ];
arr.pop();
console.log(arr.toString()); //nico,a,4.5
与之对应的是shift,他返回数组的第一个元素,并修改原数组
var arr = [ "nico", "a", 4.5, true ];
arr.shift();
console.log(arr.toString());//a,4.5,true
注意unshift则是向向数组的开头添加一个或更多元素,并返回新的长度。
2、当然也可以使用delete。delete是javascript里面的一元运算符,主要删除对象的属性或方法的引用。但是会有一个问题,就是数组长度不会改变,只是将该数组位置的元素引用删除,置为undefined
var arr = [ "nico", "a", 4.5, true ];
delete arr[0];
console.log(arr[0]);//undefined
console.log(arr.toString());//,a,4.5,true
3、这样在实际的使用中肯定是不太符合一般的习惯,我们通过下标删除数组元素,当然期望长度也发生改变,这里是网上找到的一个根据下标删除的例子:
/**
* 根据下标删除数组:
* 正数下标从左往右,以0开始
* 负数下标从右往左,以-1开始,超过长度的下标默认删除第一个元素
*/
Array.prototype.remove = function(index) {
if (isNaN(index) || index > this.length) {
return false;
}
return this.splice(index, 1);
};
测试代码:
var arr = [ "nico", "a", 4.5, true ];
arr.remove(0);
console.log(arr.toString());// nico,4.5,true
arr.remove(-4);
console.log(arr.toString());// a,4.5,true
arr.remove(-6);
console.log(arr.toString());// a,4.5,true
4、这里用到splice()方法,用来删除、插入、替换数组的元素
/**
* function splice(start, deletecount, items)
* @param {Number} start 开始删除的下标
* @param {Number} deletecount 删除的个数
* @param {Array} items 用这些数组来替换被删除的元素
* @returns {Array}
* @memberOf Array
* @see Array
* @since Standard ECMA-262 3rd. Edition
* @since Level 2 Document Object Model Core Definition.
*/
Array.prototype.splice = function(start, deletecount, items){return [];};
如下:
var arr = [ "nico", "a", 4.5, true ];
arr.splice(0, 1, "z");
console.log(arr.toString());// z,a,4.5,true
arr.splice(1, 1, [ 1, 2 ]);
console.log(arr.toString());// nico,1,2,4.5,true
用这个特性,我们可以实现在数组制定位置插入一条或多条数据:
Array.prototype.insert = function(index, obj) {
return this.splice(index, 0, obj);
};
var arr = [ "nico", "a", 4.5, true ];
arr.insert(1, ["1","2"]);
console.log(arr.toString());//nico,1,2,a,4.5,true
5、同样,这里有一个截取数组的函数slice(startNum, endNum)他接受两个起止位置的下标,不修改原数组,返回一个数组。当然,下标也可以是负数,表示从后开始
var arr = [ "nico", "a", 4.5, true ];
arr.slice(1, 2);
console.log(arr.toString());// nico,a,4.5,true
var arr1 = arr.slice(1, 6);
console.log(arr1.toString());// a,4.5,true
6、继续说删除,当然也可以提供根据值来删除:
Array.prototype.remove = function(obj) {
for ( var i = 0, j = this.length; i < j; i++) {
if (this[i] === obj) {
this.splice(i, 1);
}
}
};
var arr = [ "nico", "a", 4.5, true ];
arr.remove("a");
console.log(arr.toString());// nico,4.5,true
几个函数
1、sort用于对数组的元素进行排序,接受一个可选的函数作为排序的规则。而默认是按照数组内元素的字符编码顺序排序。
var arr = [ "nico", "a", 4.5, true ];
arr.sort();
console.log(arr.toString());// 4.5,a,nico,true
var arr = [ 1, 2.3, -3, 34 ];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr.toString());// -3,1,2.3,34
2、取最大值与最小值
//John Resig是把它们做成Math对象的静态方法
Array.prototype.max = function() {
return Math.max.apply({}, this);
};
Array.prototype.min = function() {
return Math.min.apply({}, this);
};
var arr = [ 1, 2.3, -3, 34 ];
console.log(arr.max());// 34
console.log(arr.min());// -3
3、contains
Array.prototype.contains = function(obj) {
for ( var i = 0, j = this.length; i < j; i++) {
if (this[i] === obj) {
return true;
}
}
return false;
};
var arr = [ "nico", "a", 4.5, true ];
console.log(arr.contains("a"));// true
console.log(arr.contains(2));// false
分享到:
相关推荐
Javascript 数组及其操作 Javascript 数组是一种基本的数据结构,用于存储和操作多个值。数组是一种复杂的数据类型,可以存储不同的数据类型,如数字、字符串、对象等。 创建数组 在 Javascript 中,可以使用三种...
JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)...
第6节 JavaScript数组及应用.rar第6节 JavaScript数组及应用.rar第6节 JavaScript数组及应用.rar第6节 JavaScript数组及应用.rar第6节 JavaScript数组及应用.rar第6节 JavaScript数组及应用.rar第6节 JavaScript数组...
### JavaScript 数组增加和删除方法详解 在JavaScript中,数组是一...这些方法不仅增强了JavaScript数组的功能,还提高了代码的可读性和维护性。在实际开发中,根据具体需求选择合适的方法可以使程序更加高效、简洁。
第11节 JavaScript数组常用方法及应用.rar第11节 JavaScript数组常用方法及应用.rar第11节 JavaScript数组常用方法及应用.rar第11节 JavaScript数组常用方法及应用.rar第11节 JavaScript数组常用方法及应用.rar第11...
资源名称:Javascript数组及其操作 WORD版内容简介:本文档主要讲述的是Javascript数组及其操作;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看 资源太大,传百度网盘了,链接在附件中,有...
"JavaScript数组用法详解" JavaScript 数组是一种非常重要的数据结构,它是一种可以存储多个元素的集合。 JavaScript 数组的元素可以是任何类型,包括数字、字符串、对象、函数等。数组的长度可以动态地变化,可以...
于是,本人使用JavaScript的数组模拟Hashtable集合,说明JavaScript数组的特别之外。 环境:Windows XP Professional, IE 6.0 阅读对象:所有学习JavaScript的学员。 注:本示例代码注释非常详细,请仔细阅读体会...
JavaScript数组去重功能的设计与实现 本文主要讨论了JavaScript数组去重功能的设计与实现,以解决在数据处理过程中产生大量重复数据的问题。文章首先介绍了JavaScript的基本概念,包括ECMAScript、DOM、BOM三个部分...
JavaScript数组是该语言中一种用于存储有序集合的数据结构,它的操作和特性非常丰富,为开发者处理数据集合提供了极大的便利。本文将深入探讨JavaScript数组的特性以及在实际编程中的应用。 首先,数组字面量是定义...
Chrome V8引擎中的JavaScript数组实现分析与性能优化 在本文中,我们将对Chrome V8引擎中的JavaScript数组实现进行深入分析,并探讨如何通过优化JavaScript数组的使用方式来提高程序效率。在实际应用中,JavaScript...
由于提供的文件内容中包含大量的乱码和无法识别的字符,无法直接从中提取有关JavaScript数组的知识点。不过,我们可以根据文件标题“JavaScript数组.pdf”提供的信息,详细解释JavaScript数组相关的知识点。下面将对...
### JavaScript 数组常见方法详解 #### 一、前言 JavaScript 中的数组是一种非常重要的数据结构,用于存储一系列有序的数据。本文将详细介绍 JavaScript 数组的一些常用方法及其应用场景,帮助开发者更好地理解和...
本资料"Javascript数组操作整理"聚焦于JavaScript中的数组操作,旨在帮助开发者更好地理解和掌握相关知识。 1. 创建数组: JavaScript提供了多种创建数组的方式,如字面量语法`var arr = [元素1, 元素2, ...]`,或...
JavaScript数组操作函数是编程中非常基础且重要的部分,它们提供了对数组进行各种操作的方法,包括添加、删除、合并以及转换等。以下是对标题和描述中提及的数组操作函数的详细说明: 1. **push()**: `push()` 函数...
JavaScript数组是JavaScript中的基本数据结构之一,它提供了一系列的内置方法,可以用来处理和操作数组内容。接下来,我会详细解释几个关键的JavaScript数组方法,包括map、filter、reduce以及展开操作符,并通过...
本篇文章将深入探讨JavaScript数组的内存释放机制,以及如何有效地管理数组内存。 首先,理解JavaScript的内存管理机制至关重要。JavaScript使用了一种称为垃圾回收(Garbage Collection, GC)的自动内存管理系统,...
首先,创建JavaScript数组有两种主要方式:数组构造函数和数组字面量。例如: ```javascript var arr = new Array(20); // 创建一个长度为20的数组,但不包含任何元素 var arr1 = ["小伞", 1, true, undefined, [2, ...
Javascript 数组方法汇总整理
个人多年前学习笔记,Javascript数组,初学者可以看看,高手就不用看了