js Array数组对象常见方法总结

Array对象一般用来存储数据。

其常用的方法包括:

1、concatc()方法

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));//6
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);//6
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);//7
document.write(arr1);//hello,world,aha!,1,2,3,4

unshift():

将一个或多个元素添加到数组的开头,并返回新数组的长度。

例如:

var arr1=["hello","world","aha!"];
document.write(arr1.unshift(1,"2"));//5
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"));//2
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
时间: 2024-12-31 03:47:07

js Array数组对象常见方法总结的相关文章

js String字符串对象常见方法总结

String对象常用来保存文本形式的数据. 其转化方法有二种: String(s) new String(s) String对象方法有: charAt() charCodeAt() concat() indexOf() lastIndexOf() match() repeat() replace() search() slice() substr() substring() split() toLowerCase() toUpperCase() trim() valueOf() toString

js基础,Array 数组对象、BOM 浏览器对象模型

Array 数组对象 定义数组的 3种方式 var week = new Array(); var week = new Array(‘星期一’ , ‘星期二, ‘星期三’); var week = (‘星期一’ , ‘星期二, ‘星期三’); 常用方法: 获取数组的长度 .length: alert(week.length); 获取数组下标所对应的值: alert(week[0]); 数组元素添加: 将一个或多个新元素添加到数组结尾,并返回数组新长度 var week_len = week.p

js Array数组的使用

js Array数组的使用 Array是javascript中的一个事先定义好的对象(也可以称作一个类),可以直接使用 创建Array对象 var array=new Array(): 创建指定元素个数的Array对象 var  array=new Array(23): 创建具有指定元素的Array对象: var array=new Array(‘张飒’,'李四','物流','张贲'): 输出Array对象中的所有元素的值 for...in var array=new Array(‘张飒’,'李

Java Script基础(八) Array数组对象

Java Script基础(八) Array数组对象 一.Array数组 JavaScript中的数组也是具有相同数据类型的一个或者多个值得集合.用法和Java中的数组类似. Array对象的常用属性和方法: 属性: length:获取数组的长度: 方法: join():把数组中的所有元素放入一个字符串中,通过分隔符进行分隔. sort():对数组元素进行排序. 1.创建数组 语法: var a1 = new Array();           //创建一个数组,长度为0: var a2 = 

js 删除数组几种方法

var arr=['a','b','c']; 若要删除其中的'b',有两种方法: 1.delete方法:delete arr[1] 这种方式数组长度不变,此时arr[1]变为undefined了,但是也有好处原来数组的索引也保持不变,此时要遍历数组元素可以才用 for(index in arr){  document.write('arr['+index+']='+arr[index]);} 这种遍历方式跳过其中undefined的元素 * 该方式IE4.o以后都支持了 2.数组对象splice

Array 数组对象

Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的. 注意: 数组的下标用方括号括起来,从0开始. length 用法:<数组对象>.length:返回:数组的长度,即数组里有多少个元素.它等于数组里最后一个元素的下标加一. 数组方法: 指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.

数组的常见方法

数组的常见方法:转换方法:toString();把数组里的元素连同逗号一起转换为一个字符串, 并返回结果. var arr4 = [2, 5, 6, 7, 8, 9];console.log(arr4);console.log(arr4.toString()); 重点:join();将数组中的每个元素取出来拼接成一个字符串,并 返回结果. 参数说明(字符串类型.指定每个元素间的连 接符号.)console.log(arr4.join("-")); 操作方法:push();向数组的末尾添

JS内置对象-String对象、Date日期对象、Array数组对象、Math对象

一.JavaScript中的所有事物都是对象:字符串.数组.数值.函数... 1.每个对象带有属性和方法 JavaScript允许自定义对象 2.自定义对象 a.定义并创建对象实例 b.使用函数来定义对象,然后创建新的对象实例 二.JS内置对象-String 1.string对象 string对象用于处理已有的字符串 字符串可以使用单引号或者双引号 2.indexOf( )  在字符串中查找字符串,如果匹配成功返回首字母所在的位置,否则返回-1 3.match() 匹配成功,返回匹配成功的数组,

数组对象新增方法Array.from()、Array.of()

1. Array.from() Array.from方法用于将两类对象转为真正的数组:类数组的对象( array-like object )和可遍历( iterable )的对象(包括 ES6 新增的数据结构 Set 和Map ). let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; // ES5 的写法 var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c'] // ES