1、用于清空数组
Array.prototype.clear = function() {
this.length = 0;
}
2、判断数据项在数组中的位置
varoldArrayIndexOf = Array.indexOf;//判断是否原始浏览器是否存在indexOf方法
Array.prototype.indexOf = function(obj) {
if(!oldArrayIndexOf) {
for(vari = 0, imax = this.length; i < imax; i++) {
if(this[i] === obj) {
returni;
}
}
return-1;
} else{
returnoldArrayIndexOf(obj);
}
}
3、判断数据项是否在该数组中
Array.prototype.contain = function(obj) {
returnthis.indexOf(obj) !== -1;
}
4、把数据项添加到指定的位置
Array.prototype.insertAt = function(index, obj) {
if(index < 0) index = 0; if(index > this.length) index = this.length;
this.length++;
for(vari = this.length - 1; i > index; i--) {
this[i] = this[i - 1];
}
this[index] = obj;
}
5、返回最有一项数据
Array.prototype.last = function() {
returnthis[this.length - 1];
}
6、移除数组指定索引的值
Array.prototype.removeAt = function(index) {
if(index < 0 || index >= this.length) return;
varitem = this[index];
for(vari = index, imax = this.length - 2; i < imax; i++) { this[i] = this[i + 1]; } this.length--; returnitem; }
7、移除数据项的数据
Array.prototype.removeAt = function(obj) { varindex = this.indexOf(obj); if(index >= 0)
this.removeAt(index);
}
8、用于数组的查询
用于查询对象数组中对象的某些值,同时支持对已查询属性进行重命名,若查询的属性不在改数组中,则该属性返回为undefined
Array.prototype.select = function(args) {
varnewItems = [];
if(typeof(args) === "object"&& arguments.length === 1) {//传入查询的参数为对象时的处理方式
for(vari = 0, imax = this.length; i < imax; i++) {
varitem = {};
for(varkey inargs) {
if(args[key] !== undefined) {
item[key] = this[i][key] === undefined ? "undefined": this[i][key];
}
}
newItems.push(item);
}
} elseif(typeof(args) === "string"&& arguments.length === 1) {//传入参数为字符串,且只有一个参数的处理方式
for(vari = 0, imax = this.length; i < imax; i++) {
varitem = {};
varkeys = args.split(',');
for(vark = 0, kmax = keys.length; k < kmax; k++) {
variKey = keys[k].split("as");
if(iKey.length === 1) {
item[iKey[0].trim()] = this[i][iKey[0].trim()] === undefined ? "undefined": this[i][iKey[0].trim()];
} else{
item[iKey[1].trim()] = this[i][iKey[0].trim()] === undefined ? "undefined": this[i][iKey[0].trim()];
}
}
newItems.push(item);
}
} else{//传入的参数是多个字符串的处理方式
for(vari = 0, imax = this.length; i < imax; i++) {
varitem = {};
for(varj = 0, jmax = arguments.length; j < jmax; j++) {
if(arguments[j] !== undefined) {
variKey = arguments[j].split("as");
if(iKey.length === 1) {
item[iKey[0].trim()] = this[i][iKey[0].trim()] === undefined ? "undefined": this[i][iKey[0].trim()];
} else{
item[iKey[1].trim()] = this[i][iKey[0].trim()] === undefined ? "undefined": this[i][iKey[0].trim()];
}
}
}
newItems.push(item);
}
}
returnnewItems;
}
假设数据对象数组为:var obj = [{ name: "张三", second.age: "24", sex: "男" }
, { name: "张二", age: "21", sex: "女" }
, { name: "张一", age: "23", sex: "男" }
, { name: "张四", age: "25", sex: "女" }
, { name: "张五", age: "22", sex: "男"}];
例一:obj.select(“name,second.age as age,sex”);
例二:obj.select(“name”,”second.age as age”,”sex”);
例三:查询属性对象var arg={name:”",second.age:”",sex:”"};
obj.select(arg);
9,js数组some方法的运用
数组some方法接受2个参数;一个是可以接受3个参数的回调函数,一个是代表执行上下文的对象,some方法返回boolean型;
回调函数是用来判断传入的数组中是否有满足条件的方法编写;
例如:查找数组中是否存在某元素:
var arr =[2,3,5,6,7,9];
var id = 5;
//回调函数,用于做逻辑判断
function back(arr){
return arr === id;
}
if(arr.some(back)){
alert('true')
}else{
alert('false')
}
some可用来处理复杂的搜索,比如同时判断多个条件:
var found = null;
var points = [ {x: 10, y: 20}, {x: 15, y: 53}, {x: 17, y: 72}];
points.some(function (point) {
if (point.x > 10 && point.y < 60) {
found = point; // found return true;
}
return false;
});
if (found) {
alert("Found: " + found.x + ", " + found.y); // Found: 15, 53
}
我们也可以用forEach来查询,但forEach到达指定的条件后并不能中止代码执行,需要额外抛出异常才能跳出forEach的循环。
------------------------------------------------------jquery操作数组的方法------------------------
使用grep()方法可以进行数组的筛选:
jQuery.grep( array, function(elementOfArray, indexInArray) [, invert ] )
-
array
用于查询元素的数组。
-
function(elementOfArray, indexInArray)
该函数来处理每项元素的比对。第一个参数是正在被检查的数组的元素,第二个参数是该元素的索引值。该函数应返回一个布尔值。this
将是全局的window对象。
-
invert
如果“invert”为false,或没有提供,函数返回一个“callback”中返回true的所有元素组成的数组,。如果“invert”为true,函数返回一个“callback”中返回false的所有元素组成的数组。
返回的是满足条件的数组;
扩展链接:http://www.css88.com/jqapi-1.9/jQuery.grep/
-------也可以使用array 的 some方法:
不同的是some方法只要数组中有一个满足条件的,就会返回true,some方法中传入的参数是一个回调函数;
var array = [1,2,3,4,5,9]
function back(arr){
arr >0//arr代表数组中的元素
}
array.some(back(array));//true
相关推荐
扩展阅读中提及的专题,例如《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》等,为读者提供了更多的学习资源。通过这些资源,读者可以更加全面地掌握JavaScript中数组操作的多种技巧和方法,从而...
本篇文章将详细介绍几种常见的JS数组遍历方法,并通过实例来加深理解。 1. `for`循环 这是最基础的遍历方式,通过索引来访问数组中的每个元素: ```javascript let arr = [1, 2, 3, 4, 5]; for (let i = 0; i ; i+...
使用场景及目标:帮助读者深入了解各种主流编程语言中常见的数组/列表扩展方法的工作原理及应用场景,提升编程技能。 其他说明:虽然本文以几个具体例子来展示各语言中的 append 相关操作,但掌握这些基本概念后可以...
一个 javascript 数组扩展库 演示 // Create a new empty list var list = new List ( ) ; // Create a new list based on an array var arr = [ 1 , 2 , 3 ] ; var list = new List ( arr ) ; // Add a value to ...
### JavaScript 数组常见方法详解 #### 一、前言 JavaScript 中的数组是一种非常重要的数据结构,用于存储一系列有序的数据。本文将详细介绍 JavaScript 数组的一些常用方法及其应用场景,帮助开发者更好地理解和...
本资料"Javascript数组操作整理"聚焦于JavaScript中的数组操作,旨在帮助开发者更好地理解和掌握相关知识。 1. 创建数组: JavaScript提供了多种创建数组的方式,如字面量语法`var arr = [元素1, 元素2, ...]`,或...
在JavaScript中,数组是一种常用的数据结构,用于存储和操作一系列有序的数据。ArrayUtil是一个实用的JavaScript...此外,分析源码还可以帮助我们理解面向对象编程、函数式编程以及JavaScript数组操作的内部工作原理。
10. **实例方法与原型方法的区别**:在jQuery中,通过$.extend添加的方法是可应用于所有jQuery实例的,而通过Array.prototype扩展的方法则成为了JavaScript数组对象固有的方法。 通过这篇文章,我们可以学习到如何...
##Javascript 数组扩展 向 js 数组添加了一些函数 array.min() / array.max() :返回值数组的最小值/最大值 array.minBy(prop) / array.maxBy(prop) :返回具有属性prop的对象的最小值/最大值 array.toArray(prop) :...
对于JavaScript数组去重,有多种简单的方法。首先是使用ES6的Set对象,Set类似于数组,但不允许重复值: ```javascript let uniqueArray = [...new Set(array)]; ``` 这段代码首先创建一个Set,然后使用扩展运算符`...
### JavaScript 常用数组操作方法详解 #### 一、前言 在现代Web开发中,JavaScript 是一种不可或缺的语言,而数组则是JavaScript中最基础也是最常用的数据结构之一。数组允许我们存储一系列有序的数据项,这些数据...
JavaScript数组可以包含任意类型的值,包括数字、字符串、对象等。此外,JavaScript提供了一系列内置方法来操作数组,如push()用于在数组末尾添加元素,pop()用于移除末尾元素,slice()用于提取数组的一部分,concat...
3. **数组扩展**: - 可以添加如`forEach`、`each`、`contains`、`unique`等方法,以增强数组操作的便利性。例如,`forEach`用于遍历数组并执行回调函数,`each`与`forEach`类似,`contains`检查数组中是否存在某个...
在JavaScript的ES6版本中,引入了一系列增强数组处理的新特性,其中包括了“数组扩展方法”。这些方法极大地提高了数组操作的便捷性和灵活性,使得开发者能够更加高效地处理数组数据。本篇文章将深入探讨其中的两个...
### JavaScript 数组扩展方法知识点详解 #### 一、前言 在JavaScript开发中,数组是极为常用的数据结构之一。为了更好地利用数组的功能,开发者经常...希望本文能够帮助大家更好地理解和使用JavaScript数组扩展方法。
这展示了如何在JavaScript中动态扩展数组。 5. **最终结果**: 结果数组`dest`中的每个元素都包含一个`data`属性,这是一个包含具有相同`id`的所有原始元素的数组。这样就完成了分组合并操作,将原始数组中具有...
### JavaScript 数组详解 #### 一、数组的基本操作 ...通过以上介绍,我们不仅了解了如何创建和操作数组,还深入探讨了数组的各种属性和方法,这将有助于更好地理解和使用 JavaScript 中的数组功能。
JavaScript数组的灵活性使得我们可以混合存放各种类型的数据。 接着,对象则提供了键值对的存储方式,便于我们通过特定的键来访问和操作数据: ```javascript var person = { name: "飞鱼", age: 25, height: ...
JavaScript数组不仅可以包含基本数据类型(如字符串、数字、布尔值),还可以包含复杂数据类型,如对象和其他数组,这体现了JS中的灵活性。在这个“js数组的变化”主题中,我们将深入探讨数组的一些关键特性和它们与...