js Array数组对象常见方法总结
Array对象一般用来存储数据。
其常用的方法包括:
1、concat()方法
concat() 方法用于合并两个或多个数组。它不会更改现有数组,而是返回一个新数组。
例如:
var arr1=[1,2,3];
var arr2=[4,5,6];
var arr3=arr1.concat(arr2,"7",8,[9,10]);
document.write(arr3);//1,2,3,4,5,6,7,8,9,10
2、join()方法
join方法通过指定的分隔符将数组连接成字符串。默认的分隔符(逗号)","。它返回一个所有数组元素连接的字符串。
例如:
var arr1=["hello","world","aha!"];
document.write(arr1.join());//默认为逗号分隔 输出 hello,world,aha!
var arr1=["hello","world","aha!"];
document.write(arr1.join("-"));//hello-world-aha!
如果分隔符是空字符串(""),则所有元素之间都没有任何字符。
var arr1=["hello","world","aha!"];
document.write(arr1.join(""));//helloworldaha!
3、pop()、push()、shift()、unshift()方法
想到其中的一个,另外一个都能呼之欲出,所以我就写在在一起了。
这四个方法功能类似:
pop()方法:
删除数组的最后一个元素,并且返回删除的元素值。
例如:
var arr1=["hello","world","aha!"];
document.write(arr1.pop());//aha!
shift()方法:
删除数组的第一个元素,并且返回删除的元素值。
例如:
var arr1=["hello","world","aha!"];
document.write(arr1.shift());//hello
push()方法:
将一个或多个元素添加到数组的末尾,并返回数组的新长度。
例如:
var arr1=["hello","world","aha!"];
document.write(arr1.push(1,2,3));//
document.write(arr1);//hello,world,aha!,1,2,3
此外,运用push()通过call()或apply()方法我们可以合并二个数组:
例如:
var arr1=["hello","world","aha!"];
var arr2=[1,2,3];
var arr3=Array.prototype.push.apply(arr1,arr2);
document.write(arr3);//
document.write(arr1);//hello,world,aha!,1,2,3 var arr1=["hello","world","aha!"];
var arr2=[1,2,3];
var arr3=Array.prototype.push.call(arr1,"1","2","3","4");
document.write(arr3);//
document.write(arr1);//hello,world,aha!,1,2,3,4
unshift():
将一个或多个元素添加到数组的开头,并返回新数组的长度。
例如:
var arr1=["hello","world","aha!"];
document.write(arr1.unshift(1,"2"));//
document.write(arr1);//1,2,hello,world,aha!
该方法也能够通过 call 或 apply 方法作用于类似数组的对象上。
4、reverse() 方法
将数组中元素的位置颠倒。返回该数组的引用。
例如:
var arr1=["hello","world","aha!"];
document.write(arr1.reverse());//aha!,world,hello
5、sort()方法
对数组的元素进行排序,并返回数组。如果不提供参数,默认排序顺序是根据字符串Unicode码点。其他标准排序要提供一个比较函数进行排序。返回返回排序后的数组。原数组已经被排序后的数组代替。
例如:
var arr1=["c","abc","bc"];
document.write(arr1.sort());//bb,cc,da
如果不想按此排序,可以提供一个比较函数来自行排序。该比较函数compareFunction(a,b)一般有二个参数即 a 和 b 是两个将要被比较的元素。
假设比较的是数字,数组以升序排列,则函数可返回a-b(正数);数组以降序排列,则函数可返回b-a(负数);排序位置不变,返回0;
例如:
var arr1=[6,2,20,5,8,3];
document.write(arr1.sort(compareNums));//2,3,5,6,8,20 升序
function compareNums(a,b){return a-b;}
var arr1=[6,2,20,5,8,3];
document.write(arr1.sort(compareNums));//20,8,6,5,3,2 降序
function compareNums(a,b){return b-a;}
可以运用随机函数Math.random()来进行随机排序:
var arr1=[6,2,20,5,8,3];
document.write(arr1.sort(compareNums));//
function compareNums(a,b){
return (0.5-Math.random());//随机返回 正数 负数和零
}
6、slice()方法
返回一个从开始到结束(不包括结束)选择形成的数组。原始数组不会被修改,而返回一个新数组。
语法:arr.slice(start,end)
start为负数则从数组倒数的位置开始,-1表示最后一个元素。
如果省略start,则索引从0开始;
省略end,则一直提取到数组末尾。
例如:
var arr1=[6,2,20,5,8,3];
document.write(arr1.slice(-3,-1));//5,8
var arr1=[6,2,20,5,8,3];
document.write(arr1.slice());//6,2,20,5,8,3
7、splice()方法
向数组中添加/删除项目,然后返回被删除的项目。该方法与slice不同的是,它会修改原始的数组。
语法:splice(start,deleteCount,items)
start:指定修改的开始位置。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位。
deleteCount:可选参数,表示删除的元素个数,等于0表示不移除元素。
items:要添加进数组的元素。
例如:
var arr1=[6,2,20,5,8,3];
document.write(arr1.splice(1,0,"33"));//不移除元素
document.write(arr1);//6,33,2,20,5,8,3 原始数组改变
8、toString()
方法可把数组转换为字符串,并返回结果。
Array对象覆盖了 Object的 toString 方法。
对于数组对象的toString 方法返回一个字符串,该字符串由数组中的每个元素的 toString() 返回值经调用 join() 方法连接(由逗号隔开)组成。
例如:
var arr1=["a","b","c","d"];
document.write(arr1.toString());//a,b,c,d
9、indexOf方法
返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
语法:
arr.indexOf(searchElement,fromIndex);
searchElement 表示要查找的元素。
fromIndex 表示开始查找的位置。默认为0,表示从头开始查找;如果该索引值大于或等于数组长度,意味着不会在数组里查找,返回-1。负数的话表示从末尾开始,-1表示最后一个元素。
例如:
var arr1=["22","4","hello","world"];
document.write(arr1.indexOf("hello"));//
var arr1=["22","4","hello","ss","world"];
document.write(arr1.indexOf("hello",-3));//2 其中负3表示从"hello"处开始查找。但是还是从前开始查找元素,so 输出值是2
10、其他一些es5新增的方法
eyery()、some()、map()、filter()、forEach()、reduce()
这些方法都可以接受一个回调函数,然后对数组进行操作。而这个回调函数也都可以接受三个参数:
value,
index,
array
function callback(value,index,array){/* ... */}
这三个参数分别代表:元素值,元素的索引,原数组。
先来看第一个方法 every()方法:
every()方法测试数组的所有元素是否都通过了指定函数的测试。如果有一个元素调用回调函数返回false,则函数返回false。
例如:
var arr1=[20,30,40,50];
var result=arr1.every(function(value){return value>10});
alert(result);//true
与every方法类似的some()方法如下:
该方法测试数组中的某些元素是否通过回调函数实现的测试。其中有一个能返回true,some方法则返回真值。
例如:
var arr1=[20,30,40,50];
var result=arr1.some(function(value){return value>30});
alert(result);//true
map()方法:
map表示“映射”,它会创建一个新数组,其结果是该数组中的每个元素都调用回调函数后返回的结果。
例如:
var arr1=[20,30,40,50];
var result=arr1.map(function(value){return value/10});
alert(result);//2,3,4,5
filter()方法
该方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。如果数组中的元素执行回调函数返回true,则保留该元素,false不保留。
var arr1=[20,30,40,50,0,"","55"];
var result=arr1.filter(function(value){return value});//能转化为false的值都将被抛弃
alert(result);//20,30,40,50,55
forEach()方法
该方法对数组的每个元素执行回调函数。相当于传统的循环遍历数组。返回值为undefined.
例如:
var arr1=[20,30,40,50,0,"55",undefined,,6];
var result=arr1.forEach(function(value,index){
document.write("arr1["+index+"]"+"="+value+"</br>")
});//arr1[0]=20
arr1[1]=30
arr1[2]=40
arr1[3]=50
arr1[4]=0
arr1[5]=55
arr1[6]=undefined //索引7被省略了
arr1[8]=6
reduce方法
该方法对累加器和数组中的每个元素 (从左到右)应用一个函数,将其减少为单个值。
语法:array.reduce(function(accumulator, currentValue, currentIndex, array), initialValue);
initialValue表示初始值,没有提供这个可选初始值时accumulator取数组第一个值,currentValue取第二个值。
这个回调函数接受四个参数:
accumulator:初始值
currentValue:当前值
index:索引
array:数组本身
例如:
var arr1=[2,3,4,5];
var result=arr1.reduce(function(a,b){return a+b},10);
alert(result);//24 10+2+3+4+5
reduceRight()方法
该方法与reduce方法类似,只是它从数组的末尾开始调用函数。
var arr1=[[2],[3],[4],[5]];
var result=arr1.reduceRight(function(a,b){return a.concat(b)},[6]);
alert(result);//6,5,4,3,2
js Array数组对象常见方法总结的更多相关文章
- js array数组对象操作方法汇总
--------------------------更新自2018.6.11 js 数组对象操作方法如下: 1. 创建数组 var array1 = [1,2] //方法一 var array2 = ...
- js String字符串对象常见方法总结
String对象常用来保存文本形式的数据. 其转化方法有二种: String(s) new String(s) String对象方法有: charAt() charCodeAt() concat() ...
- js对数组对象的操作以及方法的使用
js对数组对象的操作以及方法的使用 如何声明创建一个数组对象: var arr = new Array(); 或者 var arr = []; 如何移除所有数组中数据? arrayJson.dataL ...
- JS对象 Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的
Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个"下标",用来表示它在数组中的位置,是从零开始的 数组定义的方法: 1. 定 ...
- js Array数组的使用
js Array数组的使用 Array是javascript中的一个事先定义好的对象(也可以称作一个类),可以直接使用 创建Array对象 var array=new Array(): 创建指定元 ...
- Javascript进阶篇——( JavaScript内置对象---下)--Array数组对象---笔记整理
Array 数组对象数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的数组定义的方法: 1. 定义了一个空数组: var ...
- JavaScript 常用内置对象(字符串属性、Math对象、Array数组对象)
1.字符串属性 <script> var test_var = "I Iove you"; console.log(test_var.charAt(3)) // ...
- for 循环 和 Array 数组对象
博客地址:https://ainyi.com/12 for 循环 和 Array 数组对象方法 for for-in for-of forEach效率比较 - 四种循环,遍历长度为 1000000 的 ...
- js 删除数组几种方法
var arr=['a','b','c']; 若要删除其中的'b',有两种方法: 1.delete方法:delete arr[1] 这种方式数组长度不变,此时arr[1]变为undefined了,但是 ...
随机推荐
- 23.each和map函数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- (STM32F4) IAP程式碼實現
IAP學習, 主要想了解實際上程式碼放在不同的Flash位置如何轉跳且執行. 我的應用程序只做了Pin12, Pin13 LED閃爍來分辨我的 App1 跟 App2的程式碼 App1 程式碼 int ...
- 用selenium工具做软件自动化测试的面试题及答案
1.selenium中如何判断元素是否存在? 答:isElementPresent 2.selenium中hidden或者是display = none的元素是否可以定位到? 答:不可以定位到 3.s ...
- css一些常用技巧代码
图片等比例自动缩放 img{ width: auto; height: auto; max-width: 100%; max-height: 100%; } 多行省略 最后line-clamp设 ...
- UNIX SHELL基础知识总结(二)
1. vim,vi及ex的关系 vim不需要安装,vi为ex的“Visual Mode”,Vim是vi的高级版本: 2. Unix Shell 快捷键 Ctrl+a/e将光标定位到 命令的头/尾 Ct ...
- 微信公共平台注册 bug: 验证码不应该输入后,就立即检查其有效性
本文链接: https://www.cnblogs.com/hchengmx/p/10793037.html 刚刚想注册个微信公众号,就发现了这个问题,在这里记录一下. 已经发到testhome了,链 ...
- android 小工具:pc 上用 curl 命令打开手机浏览器,浏览指定网址
测试 API 时或其它情况经常需要在手机浏览器中输入 url 一长串的 url 输起来真是麻烦 AirDroid 很强大也不用数据线,但有时老断开连接,不是很爽.发到手机 qq 吧还得手动粘贴 所以自 ...
- css消除空白节点的方法
在做配置页面的时候,出现一个现在现象,两个同样的div(外框尺寸也是一样的),div里面包含有三个小的div ,三个小的div宽度也是一样的,同为33.3%,但是出现奇怪现象的就是左边一个有滚动条,右 ...
- Signal Handling--ref
http://www.chemie.fu-berlin.de/chemnet/use/info/libc/libc_21.html A signal is a software interrupt d ...
- rem单位怎么使用
rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了.但是我对rem综合评价是用来做web app它绝对是最合适的人选之一. ...