赞
踩
改变原数组:
1.pop():删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不 改变数组,并返回 undefined 值。arrayObject.pop()
2.push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组,arrayObject.push(newelement1,newelement2,….,newelementX)
3.reverse():将数组中元素颠倒过来,该方法会改变原来的数组,而不会创建新的数组。arrayObject.reverse()
4.shift():数组的第一个元素从其中删除,并返回第一个元素的值,如果数组是空的,那么 shift() 方法将不进行任何操作.
5.sort():对数组的引用。请注意,数组在原数组上进行排序,不生成副本。arrayObject.sort(sortby) 不传参数将不会按照数值大小排序,按照字符编码的顺序进行排序;
- var arr = ['General','Tom','Bob','John','Army'];
- var resArr = arr.sort();
- console.log(resArr);
- //输出 ["Army", "Bob", "General", "John", "Tom"]
- var arr2 = [30,10,111,35,1899,50,45];
- var resArr2 = arr2.sort();
- console.log(resArr2);
- //输出 [10, 111, 1899, 30, 35, 45, 50]
传入参数实现升序,降序;
- var arr3 = [30,10,111,35,1899,50,45];
- arr3.sort(function(a,b){ return a - b;})
- console.log(arr3);//输出 [10, 30, 35, 45, 50, 111, 1899]
- var arr4 = [30,10,111,35,1899,50,45];
- arr4.sort(function(a,b){ return b - a;})
- console.log(arr4);//输出 [1899, 111, 50, 45, 35, 30, 10]
根据数组中的对象的某个属性值排序;
- var arr5 = [{id:10},{id:5},{id:6},{id:9},{id:2},{id:3}];
- arr5.sort(function(a,b){ return a.id - b.id})
- console.log(arr5);
- //输出新的排序
- // {id: 2}
- // {id: 3}
- // {id: 5}
- // {id: 6}
- // {id: 9}
- // {id: 10}
多条件排序:根据数组中的对象的多个属性值排序,多条件排序;
var arr6 = [{id:10,age:2},{id:5,age:4},{id:6,age:10},{id:9,age:6},{id:2,age:8},{id:10,age:9}]; arr6.sort(function(a,b){ if(a.id === b.id){ //如果id相同,按照age的降序 return b.age - a.age }else{ return a.id - b.id }}) console.log(arr6); //输出新的排序 // {id: 2, age: 8} // {id: 5, age: 4} // {id: 6, age: 10} // {id: 9, age: 6} // {id: 10, age: 9} // {id: 10, age: 2}
6.splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组
arrayObject.splice(index,howmany,item1,……,itemX)
7.unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。arrayObject.unshift(newelement1,newelement2,….,newelementX)返回arrayObject 的新长度
不改变原数组:
1.concat():用于连接两个或多个数组,仅会返回被连接数组的一个副本,arrayObject.concat(arrayX,arrayX,……,arrayX)
2.jion():返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,arrayObject.join(separator)
3.slice():如果数组是空的arrayObject.slice(start,end)
4.JSON.parse(JSON.stringify(arry)):这种⽅式会重新复制⼀个数组。也是实现深拷贝的⼀种⽅式。5.toString():arrayObject 的字符串表示。返回值与没有参数的 join() 方法返回的字符串相同arrayObject.toString()
6.indexOf、lastindexOf,不会改变原数组,返回查找原数组的索引
indexOf(searchValue[,fromIndex]) 查找目标字符串中,是否包含searchValue,如果包含,返回第一次出现的索引,如果不包含, 返回-1
- searchValue 要查找的值 - fromIndex 查找的起始位置,如果不
填,默认为0
7.filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。array.filter(function(currentValue,index,arr), thisValue)
8.array.reduce()
接收 2 个参数:一个是函数参数,用于执行每个数组元素的函数。另一个是初始值。回调函数还接收 4 个参数:accumulator:初始值, 或者计算结束后的返回值。current:当前元素。index:当前元素的索引。arr:当前元素所属的数组对象。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。