js数组方法汇总
下面主要汇总一下数组的方法
数组方法:
1、检测是否为数组的方法:Array.isArrray();
var arr=[1,2,3,4,5];
var str='string';
console.log(Array.isArray(arr));//true
console.log(Array.isArray(str));//false
2、转换方法:toLocaleString()、toString()、valueOf()
valueOf():返回数组本身
toString():返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串
toLocaleString():调用的是每一项的toLocaleString()方法,而不是toString()方法,这三个方法通常返回同样的值,不过多讨论
var colors=["red","blue","green"];
console.log(colors.toString());//red,blue,green
console.log(colors.valueOf());//["red", "blue", "green"]
console.log(colors.toLocaleString());//red,blue,green
3、join()方法:用于将数组以指定符号分隔成字符串数组
var colors=["red","blue","green"];
console.log(colors.join());//red,blue,green
console.log(colors.join(','));//red,blue,green
console.log(colors.join('||'));//red||blue||green
4、栈方法 push()、pop()方法
push():接收任意数量的参数,把他没逐个添加到数组末尾,并返回修改后的数组长度!(不是修改后的数组);
pop():从数组末尾移除最后一项,返回移除的项
var colors=new Array();
var count=colors.push("red","green","blue");
console.log(colors)//["red", "green", "blue"]
console.log(count);//3 var item=colors.pop();
console.log(colors)//["red", "green"]
console.log(item);//blue
5、队列方法 shift()、unshift()
shift():与pop()方法对应,能够移除数组中的第一个项并且返回该项
unshift():与push()方法对应,能够在数组前面添加若干项
var colors=["red"];
var count=colors.unshift("green","blue");
console.log(colors)//["green", "blue", "red"]
console.log(count);//3 var item=colors.shift();
console.log(colors)//["blue", "red"]
console.log(item);//green
6、重排序方法 reverse()、sort()
reverse():会翻转数组项的顺序
sort():默认按字符编码的大小升序排列,通常我们会传入一个比较函数作为参数来对数字数组进行排序
var numberArr=[0,1,5,10,15];
numberArr.reverse();
console.log(numberArr);//[15, 10, 5, 1, 0] numberArr.sort();
console.log(numberArr);//[0, 1, 10, 15, 5] 按字符编码大小升序排序(此方法会先调用toString()方法) //定义一个比较函数
function compare(value1,value2){
if(value1<value2){
return -1;
}else if(value1>value2){
return 1;
}else{
return 0;
}
}
numberArr.sort(compare);
console.log(numberArr);//[0, 1, 5, 10, 15]
// 若想降序排序,将大于号小于号颠倒即可
7、操作方法 concat()、slice()、splice()
concat():数组合并,此方法会将传递给它的一个或多个数组中的每一项添加到结果数组的后面
var colors=["red","blue","green"];
var colors2=colors.concat();
var colors3=colors.concat("black",["yellow","brown"]);
console.log(colors2);//["red", "blue", "green"]
console.log(colors3);//["red", "blue", "green", "black", "yellow", "brown"]
slice():截取数组,接收一或两个参数,返回索引之间的数组项组成的一个数组(包括开头不包括结尾)
当一个参数时是截取从此索引开始到末尾的数组
当两个参数时是截取两个索引之间的数组
当参数为负数时,可以用数组长度加上此参数,截取俩参数之间的项
var colors=["red", "blue", "green", "black", "yellow", "brown"];
var colors2=colors.slice(2);
var colors3=colors.slice(1,4);
var colors4=colors.slice(-2,-1);
console.log(colors2);//["green", "black", "yellow", "brown"]
console.log(colors3);//["blue", "green", "black"]
console.log(colors4);//["yellow"] 与slice(4,5)一样
splice():一个非常强大的方法,可以完成数组的删除、插入、替换工作、
接收两个或三个或更多参数:第一个参数指定开始的索引、第二个参数指定删除的长度、第三个参数及后面的参数指定插入的项,删除返回的项
var colors=["red", "blue", "green","yellow","brown"];
var colors2=colors.splice(0,1);//删除第一项
console.log(colors2);//["red"]
console.log(colors);//["blue", "green", "yellow", "brown"]
var colors3=colors.splice(1,0,"哈哈","恰恰");//在索引1并插入两项
console.log(colors3);//[]
console.log(colors);//["blue", "哈哈", "恰恰", "green", "yellow", "brown"]
var colors4=colors.splice(3,1,"替换");//替换索引为3的项
console.log(colors4);//["green"]
console.log(colors);// ["blue", "哈哈", "恰恰", "替换", "yellow", "brown"]
8、位置方法 indexOf()、lastIndexOf()
接收1或2个参数
indexof();从前向后查找匹配到的第一项,若有第二个参数,则从第二个参数指定的索引开始向后查找,返回匹配第一项所在的索引,没匹配到则返回-1
lastIndexOf():从后往前查找匹配到的第一项,若有第二个参数,则从第二个参数指定的索引开始想前查找,返回匹配到的第一项所在的索引,没匹配到返回-1
var numbers=[1,2,3,4,5,4,3,2,1];
console.log(numbers.indexOf(4));//3
console.log(numbers.lastIndexOf(4));//5
console.log(numbers.indexOf(4,4));//5
console.log(numbers.lastIndexOf(4,4));//3
console.log(numbers.indexOf(6));//-1
console.log(numbers.lastIndexOf(6));//-1
9、迭代与归并方法 every()、filter()、forEach()、map()、some()、reduce()、reduceRight()
var numbers=[1,2,3,4,5,4,3,2,1];
var some=numbers.some(function(item,index,arr){
return (item>2);
})
console.log(some)//true 有一个返回true最终就返回true
var every=numbers.every(function(item,index,arr){
return (item>2);
})
console.log(every)//false 全部为true才是true
var filter=numbers.filter(function(item,index,arr){
return (item>2);
})
console.log(filter)//[3, 4, 5, 4, 3] 满足条件的项组成一个数组
var map=numbers.map(function(item,index,arr){
return (item*2)
})
console.log(map)// [2, 4, 6, 8, 10, 8, 6, 4, 2] 返回每个项执行的结果
var foreach=numbers.forEach(function(item,index,arr){
console.log(item)
})//相当于for循环 给每一个项执行一个函数 无返回值
var reduce=numbers.reduce(function(prev,cur,index,arr){
return prev+cur;
})
console.log(reduce)//25
var reduceright=numbers.reduceRight(function(prev,cur,index,arr){
return prev+cur;
})
console.log(reduceright)//25
js数组方法汇总的更多相关文章
- JS数组方法汇总 array数组元素的添加和删除
js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[ ...
- js 数组方法比较
js 数组方法比较 table th:first-of-type { width: 80px; } table th:nth-of-type(2) { width: 120px; } table th ...
- js数组方法详解
Array对象的方法-25个 /*js数组方法详解 */ /* * 1 concat() 用于连接多个数组或者值-------------- * 2 copyWithin() 方法用于从数组的指定位置 ...
- 转载收藏(js数组方法大全)
js数组方法大全 JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Arra ...
- JavaScript Array 数组方法汇总
JavaScript Array 数组方法汇总 1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度 var arr = [1,2,3,4,5] console.log(arr.p ...
- js数组方法大全(上)
# js数组方法大全(上) 记录一下整理的js数组方法,免得每次要找方法都找不到.图片有点多,注意流量,嘻嘻! 本期分享 join() reverse() sort() concat() slice( ...
- js数组方法大全(下)
# js数组方法大全(下) 记录一下整理的js数组方法,免得每次要找方法都找不到.图片有点多,注意流量,嘻嘻! 本期分享 forEach() map() filer() every() some() ...
- 几个关于js数组方法reduce的经典片段
以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要 ...
- js数组方法详解(最新最全)
数组是js中最常用到的数据集合,其内置的方法有很多,熟练掌握这些方法,可以有效的提高我们的工作效率,同时对我们的代码质量也是有很大影响.本文所有的栗子都是在es7环境下测试的,如果有问题欢迎留言交流 ...
随机推荐
- 【SpringMVC学习07】SpringMVC中的统一异常处理
我们知道,系统中异常包括:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生.在开发中,不管是dao层 ...
- 【转】ELK到底是什么鬼?辣么多公司用!
Sina.饿了么.携程.华为.美团.freewheel.畅捷通 .新浪微博.大讲台.魅族.IBM...... 这些公司都在使用ELK!ELK!ELK! ELK竟然重复了三遍,是个什么鬼? 一. ...
- IP分片与重组详解
大家对IP数据包头,应该不陌生吧 分片便是与图中圈出来的两个地址有关,本文也是将主要围绕他们展开. 那我们先来了解他们的概念. 标志一个三比特字段遵循与用于控制或识别片段.他们是(按顺序,从高分以低位 ...
- 【QT】打开文件对话框,选择路径下文件
0.头文件中加入 public: QString fileName; public slots: void showImage(); 1.添加两个头文件 #include<qfiledialog ...
- [algorithm] Dijkstra双栈算法表达式求值算法
一.原理 Dijkstra所做的一个算法,双栈求值,用两个栈(一个保存运算符,一个用于保存操作数), 表达式由括号,运算符和操作数组成. (1).将操作数压入操作数栈 (2).将运算符压入运算符栈: ...
- URL中的空格
如果URL中带空格,在浏览器中可以显示,但是如果访问比如 UIImage 获取图片的时候就会出现BAD URL. 解决: NSString* urlText = @"70.84.58.40/ ...
- Oracle数据库入门——基础知识
1.安装完成Oracle数据库后,使用sqlplus客户端登录数据库管理系统,只输入用户名,没有输入密码时,会提示口令为空,登录被拒绝. 请输入用户名:system 输入口令: ERROR:ORA-0 ...
- 网络通信协议八之(传输层)TCP协议详解
传输层协议 分段是为了提高传输效率,封装是指给每个数据段添加一个编号 端到端的传输是逻辑上的端到端,并不是真正意义上的发送方某层与接收方某层之间的传输 IP协议只是保证数据报文发送到目的地,为主机之间 ...
- 导入Excel 类型的数据
thinkphp 访问此控制方法就可以导入了 //数据导入 public function impUser(){ if (!empty($_FILES)) { $upload = new \Think ...
- 壁虎书5 Support Vector Machine
SVM is capable of performing linear or nonlinear classification,regression,and even outlier detectio ...