js数组常用方法汇总
判断某个对象是否是数组: instanceof、Array.isArray()
对于一个网页或者一个全局作用域可以使用instanceof操作符。
if(value instanceof Array){ //判断value是否是数组
}
instanceof操作符它假设只有一个全局执行环境,如果网页包含多个框架则使用ECMAScript5新增的Array.isArray()方法。
if(Array.isArray(value)){//判断value是否是数组
}
Array.isArray()方法支持的浏览器有IE9+、Firefor 4+、Safari5+、Opera 10.5+、Chrome。
如果要在未实现这个方法中的浏览器中检查数组,则使用:
if(Object.prototype.toString.call(value)=="[object Array]"){
}
将数组转换为字符串: toLocaleString()、toString()、valueOf()、join()
var test=['a','b','c'];
alert(test.toString());//a,b,c
alert(test.toLocaleString());//a,b,c
alert(test.valueOf());//a,b,c
alert(test);//a,b,c 默认调用toString()方法 alert(test.join(','));//a,b,c
alert(test.join('|'));//a|b|c
添加和移除数组元素方法:push()、pop()、unshift()、shift()
push()方法可以接受任意数量的参数,把他们逐个加到数组末尾,并且返回数组修改后的数组长度。
pop()方法从数组末尾移除最后一项,然后返回移除的项。
unshift()方法在数组前端添加任意数量的参数并返回新数组长度。
shift()方法能够移除数组中第一个项并返回移除的项。
var test=[];
var count = test.push('a','b');//从数组末尾逐个添加
count =test.push('c');
alert(count);//
alert(test);// var item = test.pop();
alert(item);//c
alert(test.length);//
排序方法:reverse()和sort()
reverse()方法会反转数组项顺,操作数组本身。
sort()方法默认按升序排列数组项,操作数组本身。
var test=[1,2,3,4,5];
test.reverse();
alert(test);//5,4,3,2,1 var test2=[0,1,5,10,15];
test2.sort();
alert(test2);//0,1,10,15,5 sort()方法会调用每个数组项的toString()方法,比较字符串,以确定排序。所以这里排序是字符串排序
sort()方法还可以传入一个比较函数。
比较函数在第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等则返回0,第一个参数应该位于第二个之后则返回一个正数。
function compare(value1,value2){
if(value1<value2){
return -1;
}else if(value1>value2){
return 1;
}else{
return 0;
}
}
var test=[0,1,5,10,15];
test.sort(compare);
alert(test);//0,1,5,10,15
操作方法:concat()、slice()、splice()
concat()方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。返回一个新的数组。
var a = [1,2,3];
alert(a.concat(4,5));//1,2,3,4,5 var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas" var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
alert(arr.concat(arr2));
//George,John,Thomas,James,Adrew,Martin var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas" var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin" var arr3 = new Array(2)
arr3[0] = "William"
arr3[1] = "Franklin"
alert(arr.concat(arr2,arr3))
//George,John,Thomas,James,Adrew,Martin,William,Franklin
slice() 方法可从已有的数组中返回选定的元素。返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
var test =['a','b','c','d','e'];
var arr1=test.slice(1);
var arr2=test.slice(1,4);
alert(arr1);//b,c,d,e
alert(arr2);//b,c,d
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。操作数组本身。
第一个参数:起始位置、第二个参数:截取的个数、第三个参数:追加的新元素。
//删除
var test=['a','b','c'];
var removed=test.splice(0,1)//删除第一项
alert(test);//b,c
alert(removed);//a 返回被删除的项 //插入
var test2=['a','b','c'];
var removed2=test2.splice(1,0,'d','e')//从位置1开始插入d,e
alert(test2);//a,d,e,b,c
alert(removed2)//空数组 //替换
var test3=['a','b','c'];
var removed3=test3.splice(1,1,'d','e')//从位置1开始插入d,e
alert(test3);//a,d,e,c
alert(removed3)//b
位置方法:indexOf()、lastIndexOf()
ECMAScript5提供方法支持浏览器:IE9+、Firefox 2+、Safari 3+、Opera 9.5+、Chrome
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
一个参数时:表示要查找的值,返回索引位置(从0开始)、两个参数时:第一个参数表示要查找的值,第二个参数表示起始位置。
var numbers=[1,2,3,4,5,4,3,2,1];
alert(numbers.indexOf(4));//
alert(numbers.lastIndexOf(4));// alert(numbers.IndexOf(4,4));//
alert(numbers.lastIndexOf(4,4));// var arr=['a','b','c','d','e','f','g'];
alert(arr.indexOf('g',2));//
alert(arr.lastIndexOf('c',5));//
迭代方法:every()、filter()、forEach()、map()、some()
ECMAScript5提供方法支持浏览器:IE9+、Firefox 2+、Safari 3+、Opera 9.5+、Chrome
every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。
forEach():对数组中的每一项运行给定函数,这个方法没有返回值。
map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
以上函数都不会修改数组中包含的值。
var numbers=[1,2,3,4,5,4,3,2,1];
//every()
var everyResult=numbers.every(function(item,index,array){
return (item>2);
})
alert(everyResult);//false //some()
var someResult=numbers.some(function(item,index,array){
return (item>2);
})
alert(someResult);//true //filter()
var filterResult=numbers.filter(function(item,index,array){
return (item>2);
})
alert(filterResult);//[3,4,5,4,3] //map()
var mapResult=numbers.map(function(item,index,array){
return (item*2);
})
alert(mapResult);//[2,4,6,8,10,8,6,4,2] //forEach()
numbers.forEach(function(item,index,array){
//执行操作 无返回值
})
归并方法:reduce()、reduceRight()
ECMAScript5提供方法支持浏览器:IE9+、Firefox 3+、Safari 4+、Opera 10.5+、Chrome
两个方法都会迭代数组的所以项,然后构建一个最终返回的值。reduce()方法从数组第一项开始,reduceRight()方法从数组最后开始。
var values=[1,2,3,4,5];
var sum=valuse.reduce(function(prev,cur,index,array){
prev+cur;
});
alert(sum);//
js数组常用方法汇总的更多相关文章
- JS数组方法汇总 array数组元素的添加和删除
js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[ ...
- js数组方法汇总
下面主要汇总一下数组的方法 数组方法: 1.检测是否为数组的方法:Array.isArrray(); var arr=[1,2,3,4,5]; var str='string'; console.lo ...
- javascript数组常用方法汇总
1.join()方法: Array.join()方法将数组中所以元素都转化为字符串链接在一起,返回最后生成的字符串.也可以指定可选的字符串在生成的字符串中来分隔数组的各个元素.如果不指定分隔符,默认使 ...
- js 数组常用方法
var arr =[0,1,2,3,4,5,6,7,8,9]; 1,shift() 删除数组的第一个元素,返回删除的值 //这里返回0 2,unshift(1,2) 把参数添加到数组的前面,返回值 ...
- js 数组常用方法说明
//push 向数组最后添加一项 var arr = ['one', 'two', 'three']; arr.push("four"); console.log(arr);//[ ...
- JS数组常用方法
// 来自 http://www.runoob.com/jsref/jsref-obj-array.html var arr01 = [ "fuc" , "shi ...
- JS数组常用方法总结
JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组 var arr2 = new Array(20); / ...
- js数组常用方法,含es5
(1)基本的数组方法 1.join() Array.join()方法将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串.可以自己指定分隔的符号,如果不指定,默认使用逗号 var arr ...
- js数组常用方法整理
学疏才浅,若有不对的地方,希望大家可以帮忙指正出来. 1. Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度.原数组改变. 2. Array.pop(),删除并返回数组的最 ...
随机推荐
- 十五、JDBC操作数据库
1.数据库特点 实现数据共享.减少数据的冗余度.数据的独立性.数据集中控制.数据的一致性和可维护性. 2.数据库种类和功能 (1)层次型数据库:类似于树结构,是一组通过链接而互相联系在一起的记录. ( ...
- ArrayList代码示例
package com.shushine.framework.第七章Java标准类库;import java.util.ArrayList;/** * * <p> * 描述该类情况 {@l ...
- Cheatsheet: 2015 06.01 ~ 06.30
Web The Front-End Optimization Checklist [ASP.NET 5] Production Ready Web Server on Linux. Kestrel + ...
- CentOS 7安装Mysql并设置开机自启动
CentOS 7不带Mysql数据库了,默认的数据库是MariaDB(Mysql的一个分支). 可以按照以下步骤手动安装Mysql数据库. 1. 下载rpm安装文件 wget http://repo. ...
- Java开发中经典的小实例-(do{}while())
import java.util.Scanner;public class Test13 { public static void main(String[] args) { // ...
- Canvas学习
参考了慕课网课程:炫丽的倒计时效果Canvas绘图与动画基础 感谢 liuyubobobo 老师 ,提供了这么好的课程 1.<canvas><canvas>标签 注 ...
- [css] 页面重构“鑫三无准则” 之“无宽度”准则
原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]本文地址:http://www.zhangxinxu.com/wordpress/?p=1152 一 ...
- zabbix3.0.4 部署之二 (Centos6.5系统准备)
1.安装Centos6.5 2.6.32-642.4.2.el6.x86_64 升级所有软件至最新: yum update 2.同步时间.安装ntpd yum install ntpddate n ...
- 数组的sort方法
今天在看<JavaScript高级程序设计第三版>时,学到了数组的sort方法.知道这个方法,但是一直没仔细研究过,这次发现,它是把数组内的值用toSting()变为字符串再进行比较,这样 ...
- C语言输出字符串
在VS2012中,使用gets_s()方法,其中第二个参数可以用sizeof(...)代替.例子代码如下: #include <stdio.h> int main( ) { ]; gets ...