增加
push() // 向数组末尾添加元素,并返回数组修改后的长度var arr = ["Lily","lucy","Tom"];var count = arr.push("Jack","Sean");console.log(count); // 5console.log(arr); // ["Lily", "lucy", "Tom", "Jack", "Sean"]
unshift() // 将参数添加到原数组的开头,并返回数组的长度var arr = ["Lily","lucy","Tom"];var count = arr.unshift("Jack","Sean");console.log(count); // 5console.log(arr); //["Jack", "Sean", "Lily", "lucy", "Tom"]
concat() // 将参数添加到原数组中var arr = [1,3,5,7];var arrCopy = arr.concat(9,[11,13]);console.log(arrCopy); //[1, 3, 5, 7, 9, 11, 13]console.log(arr); // [1, 3, 5, 7](原数组未被修改)
删除
pop() // 移除数组最后一项,返回移除的那个值,减少数组的lengthvar item = arr.pop();console.log(item); // Seanconsole.log(arr); // ["Lily", "lucy", "Tom", "Jack"]
shift() // 删除原数组的第一项,并返回删除元素的值,如果数组为空则返回undefinedvar item = arr.shift();console.log(item); // Jackconsole.log(arr); // ["Sean", "Lily", "lucy", "Tom"]
查找
slice() // 返回从原数组中指定开始下标到结束下标之间的项组成的新数组,slice()方法可以接收一或两个参数,既要返回的起始位置和结束位置,在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项,如果有两个参数,该方法返回起始和结束位置之间的项--但不包括结束位置的项var arr = [1,3,5,7,9,11];var arrCopy = arr.slice(1);var arrCopy2 = arr.slice(1,4);var arrCopy3 = arr.slice(1,-2);var arrCopy4 = arr.slice(-4,-1);console.log(arr); //[1, 3, 5, 7, 9, 11](原数组没变)console.log(arrCopy); //[3, 5, 7, 9, 11]console.log(arrCopy2); //[3, 5, 7]console.log(arrCopy3); //[3, 5, 7]console.log(arrCopy4); //[5, 7, 9]
indexOf() // 接收两个参数:要查找的项和(可选的)表示查找的起点位置的索引,其中,从数组的开头(位置0)开始向后查找lastIndexOf() // 接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。var arr = [1,3,5,7,7,5,3,1];console.log(arr.indexOf(5)); //2console.log(arr.lastIndexOf(5)); //5console.log(arr.indexOf(5,2)); //2console.log(arr.lastIndexOf(5,4)); //2console.log(arr.indexOf("5")); //-1
splice
splice() // 删除、插入和替换删除:指定两个参数:要删除的第一项的位置和要删除的项数插入:可以向指定位置插入任意数量的项,只需提供3个参数:起始位置、(0)要删除的项数、和要插入的项替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定三个参数:起始位置、要删除的项数和要插入的任意数量的项,插入的项数不必与删除的项数相等var arr = [1,3,5,7,9,11];var arrRemoved = arr.splice(0,2);console.log(arr); //[5, 7, 9, 11]console.log(arrRemoved); //[1, 3]var arrRemoved2 = arr.splice(2,0,4,6);console.log(arr); // [5, 7, 4, 6, 9, 11]console.log(arrRemoved2); // []var arrRemoved3 = arr.splice(1,1,2,4);console.log(arr); // [5, 2, 4, 4, 6, 9, 11]console.log(arrRemoved3); //[7]
一、join
// join()里面传的是分隔符 var arr = ['html','css','js'] console.log(arr.join('|'));
二、sort
sort():将数组里的项从小到大排序 var arr1 = ["a", "d", "c", "b"]; console.log(arr1.sort()); // ["a", "b", "c", "d"] // 升序 var arr = [12, 3, 5, 11, 1] var newArr = (arr.sort(function(a, b) { return a - b })) console.log(newArr); // 降序 var c = [12, 14, 45, 2] var test = c.sort(function(a, b) { return b - a }) console.log(test);
// 实例 var arr = [ { name: 'KFC', price: 100, distance: 100 }, { name: '必胜客', price: 200, distance: 500 }, { name: '华莱士', price: 50, distance: 1000 }, ] arr.sort(function(a,b){ return a.price - b.price }) console.log(arr); arr.sort(function(a,b){ return b.distance - a.distance }) console.log(arr);
三、reduce
var arr = [1, 2, 3] var sum = arr.reduce((a,b) => a+b) console.log(sum);
四、reverse
// 翻转数组,原数组改变 var arr = ['html', 'css', 'js'] arr.reverse() console.log(arr);
五、for in
var arr = ['html', 'css', 'js'] for(var key in arr){ console.log(key); // key获取的是数组的下标 console.log(arr[key]); } var test = { name: 'KFC', price: 100, distance: 100 } for(var key in test){ console.log(key); // key获取的是对象的属性 console.log(test[key]); }
六、for of
var arr = [3, 4, 5] for(var value of arr){ console.log(value); // value获取的是值 console.log(arr.indexOf(value)); // 获取下标 }
七、foreach
forEach():对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。参数都是function类型,默认有传参,参数分别为:遍历的数组内容;第对应的数组索引,数组本身。var arr = [1, 2, 3, 4, 5];arr.forEach(function(x, index, a){console.log(x + '|' + index + '|' + (a === arr));});// 输出为:// 1|0|true// 2|1|true// 3|2|true// 4|3|true// 5|4|true var test = [2, 3, 4] var test1 = [] test.forEach(function(item) { test1.push(item * 2) }) console.log(test1); var names = [ {name: 'lisi'}, {name: 'wangwu'} ] names.forEach(function(item){ item.like = true }) console.log(names);
八、map
map():指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。 var arr = [2, 3, 4] var res = arr.map(item => { return item * 2; }) console.log(res); var arr = [ {name: 'html', value: '12px'}, {name: 'css', value: '13px'}, {name: 'js', value: '14px'} ] arr.map(item => { item.value = parseInt(item.value) * 2 + 'px' }) console.log(arr);
九、some
var arr = [3, 4, 5, 6]; // 只要数组中一项满足某个条件,那么结果就是true var res = arr.some(item => { return item > 1; }) console.log(res);
十、every
var arr = [2, 3, 4] // 数组中的每一项都必须满足某个条件,返回Boolean var res = arr.every(item => { return item > 2; }) console.log(res);
十一、filter
filter():“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];var arr2 = arr.filter(function(x, index) {return index % 3 === 0 || x >= 8;}); console.log(arr2); //[1, 4, 7, 8, 9, 10] var arr = [3, 4, 5, 6] // 只要是达到某个条件,就会返回一个新的数组 var res = arr.filter(item => { return item > 4 }) console.log(res);
十二、find
var arr = [2, 3, 4] // 返回数组中符合条件的一个值,找到则返回数组中符合的值,没找到则返回undefined var res = arr.find(item => { return item == 3; })
十三、findIndex
var arr = [4, 3, 4] // 返回数组中符合条件的元素的下标,找到则返回数组元素的下标,没找到则返回-1 var index = arr.findIndex(item => { return item == 4; }) console.log(index);