原数组改变的方法有:
push pop shift unshift reverse sort splice
不改变原数组的方法有:
concat map filter join every some indexOf slice forEach
- Array.push() ——原数组改变
描述
Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度。
示例
var arr = [1, 2, 3, 4]
var re = arr.push(5, 6, 7, 8)
console.log(re, arr) //re=8,arr=[1,2,3,4,5,6,7,8]
- Array.pop()——原数组改变
描述
Array.pop(),删除数组最后一个元素并返回它,若该数组为空,则返回undefined。
示例
var arr = [1, 2, 3, 4]
var arr1 = []
var re = arr.pop()
var re1 = arr1.pop()
console.log(re, arr) //re=4,arr=[1,2,3]
console.log(re1, arr1) //re1=undefined,arr1=[]
- Array.unshift()——原数组改变
描述
Array.unshift(),向数组的开头添加一个或多个元素,并返回新的数组长度。
示例
var arr = [1, 2, 3, 4]
var re = arr.unshift(0)
console.log(re, arr) //re=5,arr=[0,1,2,3,4]
- Array.shift()——原数组改变
描述
Array.shift(),删除数组的第一项,并返回第一个元素的值。若该数组为空,则返回undefined。
示例
var arr = [1, 2, 3, 4]
var re = arr.shift()
console.log(re, arr) //re=1,arr=[2,3,4]
- Array.concat()——原数组不变
描述
Array.concat(arr1,arr2…),合并两个或多个数组(包括数组调用者),生成一个新的数组。
示例
var arr = [1, 2]
var arr1 = [3, 4]
var arr2 = [5, 6]
var re = arr.concat(arr1, arr2)
console.log(re, arr) //re=[1,2,3,4,5,6],arr=[1,2]
- Array.join()——原数组不变
描述
Array.join(),将数组的每一项用指定字符连接形成一个字符串。默认连接字符为 “,” 逗号。
示例
var arr = [1, 2, 3, 4, 5]
var re = arr.join("-")
console.log(re, arr) //re=1-2-3-4-5,arr=[1, 2, 3, 4, 5]
- Array.reverse()——原数组改变
描述
Array.reverse(),将数组倒序。
示例
var arr = [1, 2, 3, 4, 5]
var re = arr.reverse()
console.log(re, arr) //re=[5, 4, 3, 2, 1],arr=[5, 4, 3, 2, 1]
- Array.sort()——原数组改变
描述
Array.sort(),对数组元素进行排序。按照字符串UniCode码排序。
示例
从小到大
var compare = function (a, b) {
return a - b
}
var arr = [2, 1, 4, 3, 5]
var re = arr.sort(compare)
console.log(re, arr) //re=[1, 2, 3, 4, 5] ,arr=[1, 2, 3, 4, 5]
从大到小
var compare = function (a, b) {
return b - a
}
var arr = [2, 1, 4, 3, 5]
var re = arr.sort(compare)
console.log(re, arr) //re=[5, 4, 3, 2, 1] ,arr=[5, 4, 3, 2, 1]
按照数组中对象的某个值进行排序
function arr_obj(obj_value) {
return function conpare(a, b) {
return a[obj_value] - b[obj_value]
}
}
var arr = [{ name: "小明", age: "14" }, { name: "小红", age: "12" }, { name: "小鹏", age: "13" }]
var re = arr.sort(arr_obj("age"))
console.log(re, arr)
- Array.map(function)——原数组不变
描述
Array.map(function),原数组的每一项执行函数后,返回一个新的数组。
- Array.forEach(function)——原数组不变
描述
Array.forEach(function),用于调用数组的每个元素,并将元素传递给回调函数。(注意该方法和map的区别,若直接打印Array.forEach,结果为undefined)
- Array.filter(function)——原数组不变
描述
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。返回新数组。
filter()按照序号从小到大遍历Array,对每个元素仅调用一次方法,对于序号i,调用方法时带有三个参数:currentValue,index,arr
注意: filter() 不会对空数组进行检测。
语法
Array.filter(function(currentValue,index,arr), thisValue)