- toString():把数组转换为数组值的字符串(修改原数组)
const fruit = ["Banana", "Orange", "Apple", "Mango"];
fruit.toString(); //Banana,Orange,Apple,Mango
- join():把数组元素结合成一个字符串(返回新数组)
const fruit = ["Banana", "Orange", "Apple", "Mango"];
const newFruit = fruit.join("*"); //Banana*Orange*Apple*Mango
- pop():删除数组的最后一个元素(修改原数组)
const fruit = ["Banana", "Orange", "Apple", "Mango"];
fruit.pop(); //['Banana', 'Orange', 'Apple']
var x = fruit.pop(); //返回被弹出的值
- push():在数组结尾处添加一个新元素(修改原数组)
const fruit = ["Banana", "Orange", "Apple", "Mango"];
fruit.push("grape"); //['Banana', 'Orange', 'Apple', 'Mango', 'grape']
const x = fruits.push("Kiwi"); //x 的值是 5 -> push()方法返回新数组的长度
- shift():删除首个数组元素,并把所有其他元素“位移”到更低的索引(修改原数组);返回被“位移出”的字符串
const fruit = ["Banana", "Orange", "Apple", "Mango"];
fruit.shift(); //"Orange", "Apple", "Mango"
const x = fruit.shift(); //返回 "Banana"
- unshift():(在开头)向数组添加新元素,并“反向位移”旧元素;返回新数组的长度
const fruit = ["Banana", "Orange", "Apple", "Mango"];
fruit.unshift("Lemon"); //'Lemon', 'Banana', 'Orange', 'Apple', 'Mango'
const x = fruit.unshift("Lemon"); //返回5
- delete:删除元素(修改原数组),会留下未定义的元素空位
const fruit = ["Banana", "Orange", "Apple", "Mango"];
delete fruit[1]; //'Banana', 空白, 'Apple', 'Mango'
- splice(参数1,参数2,参数3):对数组进行删除添加(修改原数组),不留空位删除元素
- 参数1:新添加元素的位置
- 参数2:要删除几个元素
- 参数3:要添加的内容
const fruit = ["Banana", "Orange", "Apple", "Mango"];
fruit.splice(2, 0, "grape", "pear"); //"Banana", "Orange", "grape" ,"pear"
- concat():合并(连接)现有数组来创建一个新数组(返回新数组),可以使用任意数量的数组参数
const arr1 = ["Cecilie", "Lone"];
const arr2 = ["Emil", "Tobias", "Linus"];
const arr3 = ["Robin", "Morgan"];
const together = arr1.concat(arr2); //连接arr1和arr2,输出['Cecilie', 'Lone', 'Emil', 'Tobias', 'Linus']
const together = arr1.concat(arr2,arr3); //['Cecilie', 'Lone', 'Emil', 'Tobias', 'Linus', 'Robin', 'Morgan']
const arr1 = ["Cecilie", "Lone"];
const myChildren = arr1.concat(["Emil", "Tobias", "Linus"]); //["Cecilie", "Lone","Emil", "Tobias", "Linus"]
- slice():用数组的某个片段切出新数组(返回新数组)
const fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
const citrus = fruits.slice(1); //从数组下标为1的位置切分出新数组:['Orange', 'Lemon', 'Apple', 'Mango']
//可接受两个参数:从开始参数选取元素,直到结束参数(不包括)为止
const fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
const citrus = fruits.slice(1, 3); //['Orange', 'Lemon']
//如果结束参数被省略,则 slice() 会切出数组的剩余部分。
- sort():以字母顺序对数组进行排序(修改原数组)
const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort(); //['Apple', 'Banana', 'Mango', 'Orange']
//数字排序:(从小到大)
const points = [40, 100, 1, 5, 25, 10];
points.sort(function (a, b) { return a - b }); //[1, 5, 10, 25, 40, 100]
//对象排序:
const cars = [
{ type: "Volvo", year: 2016 },
{ type: "Saab", year: 2001 },
{ type: "BMW", year: 2010 }
]
cars.sort(function (a, b) { return a.year - b.year });
- reverse():反转数组中的元素,可以使用它以降序对数组进行排序(先排序,再用此方法反转过来)
const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.reverse(); //['Orange', 'Mango', 'Banana', 'Apple']
- Min():找数组中最小的值
- Max():找数组中最大的值
- forEach(参数1,参数2,参数3):为每个数组元素调用一次函数(回调函数)
const numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction); //45,4,9,16,25
function myFunction(item:number){ console.log(item); }
- Map():通过对每个数组元素执行函数来创建新数组;不会对没有值的数组元素执行函数;不会更改原始数组
const numbers1 = [45, 4, 9, 16, 25];
const numbers2 = numbers1.map(myFunction); //[90, 8, 18, 32, 50]
function myFunction(value:number, index:number, array:number[]) { return value * 2; }
forEach()和Map()的区别:
map()有返回值,forEach()没有返回值;
map会返回一个新数组,forEach不会返回新数组,允许对原数组进行更改
-
filter():创建一个包含通过测试的数组元素的新数组
const numbers = [45, 4, 9, 16, 25];
const over18 = numbers.filter(myFunction); // [45, 25]
function myFunction(value:number, index:number, array:number[]) { return value > 18; }
filter和find区别:
filter为过滤找出符合条件的内容返回多个值,find为满足条件则找到第一个符合的内容并返回一个值
- reduce():在每个数组元素上运行函数,以生成(减少它)单个值;在数组中从左到右工作;不会减少原始数组
const numbers1 = [45, 4, 9, 16, 25];
const sum = numbers1.reduce(myFunction); // 99
function myFunction(total:number, value:number, index:number, array:number[]) {
return total + value;
}
- every():检查所有数组值是否通过测试
const numbers = [45, 4, 9, 16, 25];
const allOver18 = numbers.every(myFunction); //false(数组中的数字并不满足都大于18)
function myFunction(value, index, array) { return value > 18; }
- some():检查某些数组值是否通过了测试(与every相反,不需要所有都满足)
- indexOf():在数组中搜索元素值并返回其位置;lastIndexOf()是从后往前搜索
const fruits = ["Apple", "Orange", "Apple", "Mango"];
const a = fruits.indexOf("Apple"); //返回0
- find():返回通过测试函数的第一个数组元素的值
const numbers = [4, 9, 16, 25, 29];
const first = numbers.find(myFunction); //25
function myFunction(value, index, array) { return value > 18; }
- findIndex():返回通过测试函数的第一个数组元素的索引
const numbers = [4, 9, 16, 25, 29];
const first = numbers.findIndex(item => { return item > 1 }); //0