改变原数组的方法:
一.shift:删除数组的第一个元素
- 语法:array.shift()
- 返回值:返回删除的那个数据
let arr = ['pink', 'blue', 'yellow', 'green'];
console.log(arr.shift()); //打印pink
console.log(arr); //打印['blue', 'yellow', 'green']
二.unshift:在数组开头添加元素,并返回新的长度
- 语法:array.unshift(item1,item2, ..., itemX)
- 返回值:返回原数组的长度
let arr = ['pink', 'blue', 'yellow', 'green'];
console.log(arr.unshift('orange')); //打印5
console.log(arr);
//打印 ['orange', 'pink', 'blue', 'yellow', 'green']
三.pop:删除数组的最后一个元素
- 语法:array.pop()
- 返回值:返回删除的那个数据
let arr = ['pink', 'blue', 'yellow', 'green'];
console.log(arr.pop()); //打印green
console.log(arr); //打印 ['pink', 'blue', 'yellow']
四.push:在数组的末尾添加元素,并返回新的长度
- 语法:array.push(item1,item2, ..., itemX)
- 返回值:返回原数组的长度
let arr = ['pink', 'blue', 'yellow', 'green'];
console.log(arr.push('orange')); //打印5
console.log(arr);
//打印 ['pink', 'blue', 'yellow', 'green','orange']
五.reverse:翻转数组
- 语法:array.reverse()
- 返回值:返回翻转后的数组
let arr = ['pink', 'green', 'yellow', 'green'];
console.log(arr.reverse());
console.log(arr);
//以上都打印 ['green', 'yellow', 'green', 'pink']
六.sort:数组排序
- 语法:array.sort()
- 返回值:返回排序后的数组
- 注意:它只会按首字母排序。若要排序数字,则要写成
(升序)array.sort(function(a,b){return a-b});若要将字母倒序排序,排序后再翻转数组即可
let arr = ['pink', 'green', 'yellow', 'green'];
console.log(arr.sort());
console.log(arr);
//以上都打印['green', 'green', 'pink', 'yellow']
七.splice:添加或删除数组中的元素
- 语法:array.splice(第几个开始,要删除的个数)
注意:包括开始索引的元素
- 返回值:返回删除的数组
let arr = ['pink', 'green', 'yellow', 'green'];
console.log(arr.splice(1, 2)); //打印 ['green', 'yellow']
console.log(arr); 打印['pink', 'green']
八.copyWithin:从数组的指定位置拷贝元素到数组的另一个指定位置中
- 语法:array.copyWithin(target, start, end)
target:必选,复制到指定目标索引位置
start:可选,元素复制的起始位置
end:可选,停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数
- 返回值:返回改变后的数组
let arr = ['pink', 'green', 'yellow', 'green'];
console.log(arr.copyWithin(0, 1, 2));
console.log(arr);
//以上都打印 ['green', 'green', 'yellow', 'green']
//原来索引为0的元素被后边拷贝的元素覆盖
九.fill:将一个固定值替换数组的元素
- 语法:array.fill(value, start, end)
value:必选,替换的元素
start:可选,元素替换的起始位置
end:可选,替换终止的位置 (默认为 array.length)
- 返回值:返回改变后的数组
let arr = ['pink', 'green', 'yellow', 'green'];
console.log(arr.fill('orange', 1, 2));
console.log(arr);
//以上都打印['pink', 'orange', 'yellow', 'green']
不改变原数组的方法:
一.join:通过分隔符将数组转换为字符串
- 语法:array.join(separator)
separator:指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符
- 返回值:返回拼接后的字符串
let arr = ['pink', 'green', 'yellow', 'green'];
console.log(arr.join());
console.log(arr.join(' '));
console.log(arr);
二.slice:从数组中截取选定的元素(可以用作字符串)
- 语法:array.slice(start,end)
start:开始截取的元素索引(包括该元素)
end:截取结束的元素索引(不包括该元素)
- 返回值:返回截取的数组
let arr = ['pink', 'green', 'yellow', 'green']
console.log(arr.slice(1, 2))
三.concat:用于连接两个或多个数组(可以用作字符串)
- 语法:array.concat(array, array, ..., arrayX)
- 返回值:返回连接后的新数组
let arr = ['pink', 'green', 'yellow', 'green'];
let arr1 = ['Jin', 'Nick']
console.log(arr.concat(arr1));
//打印['pink', 'green', 'yellow', 'green', 'Jin', 'Nick']
四.indexOf:返回某个指定的元素在数组中首次出现的位置,如果没有找到匹配的元素则返回 -1(字符串也可以使用)
- 语法:array.indexOf(searchvalue,start)
searchvalue:是要查找的元素
start:起始的位置
- 返回值:若找到元素,返回该元素的索引号;反之,返回-1
let arr = ['pink', 'green', 'yellow', 'green'];
console.log(arr.indexOf('orange'));
console.log(arr.indexOf('green'));
五.lastindexOf:从数组末尾开始,返回某个指定的元素在数组中首次出现的位置,如果没有找到匹配的元素则返回 -1(字符串也可以使用)
- 语法:array.lastIndexOf(searchvalue,start)
searchvalue:是要查找的元素
start:起始的位置
- 返回值:若找到元素,返回该元素的索引号;反之,返回-1
let arr = ['pink', 'green', 'yellow', 'green'];
console.log(arr.lastIndexOf('orange'));
console.log(arr.lastIndexOf('green'));
六.filter:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素
- 语法:array.filter(function(currentValue,index,arr), thisValue)
- 返回值:返回过滤后的新数组
let arr = [50, 100, 200, 300];
let arr1 = arr.filter(function (arr2) {
return arr2 >= 100
})
console.log(arr1);
console.log(arr);
七.还有一些方法map(),reduce(),forEach()一般用于遍历数组,很少用来改变数组,some(),every(),Math.max(...arr)返回数组的最大数字