数组的属性和方法总结

来源:互联网 发布:安卓上的绘画软件 编辑:程序博客网 时间:2024/05/22 13:41

Array()是一个用来创建数组对象的构造器!

定义数组有两种方法:
var arr = new Array(1,2,3);var arr1 = [1,2,3]

注意一点敲打的是 第一种写法 如果只有一个数字,则表示的是数组的长度,且每个位置的元素由undefined填充。


例如:
var arr = new Array(3);//则用标识法表示 为arr = [undefined,undefined, undefined]

好了下面就是一些属性方法的总结了得意

1. length

该属性返回的是数组元素的个数

例如:

>>[1,2,3].length;>3

2. concat(i1, i2, i3)

该方法主要用于合并数组;

var  arr = [1,2].concat([2,3],[4,5],[5,6]);console.log(arr);//[ 1, 2, 2, 3, 4, 5, 5, 6 ]


3.join(separator)

该方法用于数组中元素连成一个字符串。我们可以通过参数来指定元素之间的分隔字符串,默认显示为逗号。

例如:

>>[1,2,3].join();>"1,2,3">>[1,2,3].join("*")>"1*2*3"

4.pop()

移出数组中的最后一个元素,并将其返回,未生成新数组。

例如:

var arrpop = ['1',2,3];console.log(arrpop.pop()); // 3console.log(arrpop); //[ '1', 2 ]


5.push(i1, i2, i3)

新元素(可以是任何值)添加到数组的末尾,并返回修改后数组的长度

例如:
var arrPush = [];console.log(arrPush.push([1,2,3],{"name":1,"num":2},3));//3返回新数组的长度console.log(arrPush); //[ [ 1, 2, 3 ], { name: 1, num: 2 }, 3 ]


6.reverse()

反转数组顺序,并返回修改后的数组。

例如:
var  a = [1,2,3];console.log(a.reverse()); //[ 3, 2, 1 ]console.log(a); //[ 3, 2, 1 ]


7.shift()

与pop对应,shift()是移除数组的首个元素,返回移出的字符。

例如:
var arrShift = ["aa","bb" ,"cc"];console.log(arrShift.shift()); //aaconsole.log(arrShift);  //[ 'bb', 'cc' ]


8.slice(start_index, end_index)

截取数组的一部分但不会对原始数组作修改。

例如:

var arrShift = ["aa","bb" ,"cc"];console.log(arrShift.shift()); //aaconsole.log(arrShift);  //[ 'bb', 'cc' ]

9.sort()

用于数组的排序,它有一个可选参数(回调函数),我们可以用他来自定义排序规则。该函数有两个参数,两个参数相等时返回0,第一个参数大时返回1否则返回-1

例:

function customSort(a, b){    if( a>b ) return 1;    if( a<b ) return -1;    if( a==b ) return 0;}var a = [111, 99 ,1, 5,3];console.log(a.sort());  //[ 1, 111, 3, 5, 99 ]console.log(a.sort(customSort));  //[ 1, 3, 5, 99, 111 ]

10.splice(start , delete , count , i1 , i2 ,i3 ,...)

该方法可以在删除的同时添加新的元素,第一个参数表示删除的起始位置,第二个参数表示删除的个数,其余参数表示将要插入在此处的新元素。

var a = ["app" ,"pc" ," banner ","img" ,"js" ,"css"];console.log(a.splice(2,2,'新增1',"新增2"));   //[ ' banner ', 'img' ]console.log(a);   //[ 'app', 'pc', '新增1', '新增2', 'js', 'css' ]

11.unshift()


该方法与Push类似,unshift是向前添加元素到数组中。返回的都是数组的长度。


var  a = [1,2,3];console.log(a.unshift("添加1")); //4console.log(a);  //[ '添加1', 1, 2, 3 ]

12.Array.filter(callback,thisObject);

1.回调函数可以有三个参数:当前元素,当前元素的索引和当前的数组对象。
2.如参数 thisObject 被传递进来,它将被当做回调函数(callback)内部的 this 对象,如果没有传递或者为null,那么将会使用全局对象。
3.不会改变原来的数组

var arr1 = [29,3,4,5,"str","fdl","1"];function callback(element,index , Array){    return (typeof(element)== "number"); //返回数组中类型为数字的元素}var arr2 = arr1.filter(callback);console.log(arr2);  // [29, 3, 4, 5]


13.Array.map(callback)

*  map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。
*  map 方法中的 callback 函数只需要接受一个参数(很多时候,自定义的函数形参只有一个),就是正在被遍历的数组元素本身。

var str = ["Ctr","Shift","CapsLook"];var strUpper = str.map(function(element){    return element.toUpperCase();});console.log(strUpper); // [ 'CTR', 'SHIFT', 'CAPSLOOK' ]

14.Array.some(callback)

* 对数组中的每个元素都执行一次指定的函数(callback),
* 直到此函数返回 true,如果发现这个元素,some 将返回 true,如果回调函数对每个元素执行后都返回 false ,some 将返回 false。
* 它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略。

var numArr = [1,2,3,4,5,6,7,8,8,,9,9,0,0,12];var isGreater = function (element , index , Array){   return (element > 10); //如何匹配到大于10的则返回true否则返回false};var newArr = numArr.some(isGreater); //trueconsole.log(newArr);

15.Array.every(callback)

* 对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 false,如果发现这个元素,every 将返回 false,
* 如果回调函数对每个元素执行后都返回 true ,every 将返回 true。
* 它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略

var evenArr = [2,4,"8"];var isEven = function (element , index, Array){   return (typeof(element) == "number") && (element%2 ==0);//全部为偶数则返回true否则返回false};console.log(evenArr.every(isEven)); //false

16.Array.forEach(callback,thisObject)

var EachArr = ["11","22","33","44"];var mul = [];var each = function (element , index ,Array){    mul[index] = (+element)*2;};var forEach = EachArr.forEach(each);console.log(mul); //[22, 44, 66, 88]

17.array.lastIndexOf(searchElement[, fromIndex]);

* searchElement: 要搜索的元素
* fromIndex : 开始搜索的位置,默认为数组的长度(length),在这样的情况下,将搜索所有的数组元素。搜索是反方向进行的。

var array = [1,2,3,4,5];console.log(array.lastIndexOf(3)); //返回索引位置2console.log(array.lastIndexOf(6));//未找到返回-1

18.Array.reduce(callback,initialValue)  Array.reduceRight()

* 1.使用指定函数将数组元素进行组合,生成单个的值 (注入和折叠)
* 2.拥有两个参数 ,第一个为操作的函数,第二个为定义函数的初始值
* 3.这两个方法的用途一样,reduce是从左到右,reduceRight是从右到左。

var  a = [1,2,3,4,5];var sum = a.reduce(function(x,y){  return x+y;},0);console.log(sum); //15

1 0