数组添加和删除元素的四个方法基本方法
let arr = [1, 2, 3];
-
push()
:向数组末尾添加元素arr.push(4); console.log(arr); // [1, 2, 3, 4];
-
pop()
:弹出数组的最后一个元素let temp = arr.pop(); console.log(arr); // [1, 2]; console.log(temp); // 3;
-
shift()
:移除数组第一个元素,返回被移除的元素let temp = arr.shift(); console.log(arr); // [2, 3]; console.log(temp); // 1
-
unshift()
:向数组开头添加一个元素arr.unshift(4); console.log(arr); // [4, 1, 2, 3]
slice和splice方法
-
slice()
:裁剪数组,返回新的数组,不会影响原数组var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(1); console.log(citrus); // ["Orange", "Lemon", "Apple", "Mango"]
-
splice()
:拼接数组,返回一个包含已删除项的数组。第一个参数定义了应添加新元素的位置(拼接)。
第二个参数定义应删除多少元素。
其余参数定义要添加的新元素。
// 用于向数组添加新项: var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(2, 0, "Lemon", "Kiwi"); // 用来删除数组中的元素 var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(0, 1); // 删除 fruits 中的第一个元素
其余方法
-
concat()
:通过合并(连接)现有数组来创建一个新数组var myGirls = ["Cecilie", "Lone"]; var myBoys = ["Emil", "Tobias", "Linus"]; var myChildren = myGirls.concat(myBoys); // 连接 myGirls 和 myBoys var arr1 = ["Cecilie", "Lone"]; var arr2 = ["Emil", "Tobias", "Linus"]; var arr3 = ["Robin", "Morgan"]; var myChildren = arr1.concat(arr2, arr3); // 将arr1、arr2 与 arr3 连接在一起
-
sort()
:sort() 方法是最强大的数组方法之一// 以字母顺序对数组进行排序 var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // 对 fruits 中的元素进行排序 // 自定义排序 let arr = [1, 4, 2, 3, 0]; arr.sort(function(a, b){ // 返回 > 0,交换a,b的位置 // 返回 <= 0,不交换位置 return a - b; })
-
join()
:连接数组let a = [1, 23, 4, 5]; let result = a.join('~~'); // 以“~~”连接数组 console.log(result); // 1~~23~~4~~5
数组迭代
-
Array.forEach()
:每个数组元素调用一次函数(回调函数)var txt = ""; var numbers = [45, 4, 9, 16, 25]; numbers.forEach(myFunction); function myFunction(value, index, array) { txt = txt + value + "<br>"; }
-
Array.map()
:通过对每个数组元素执行函数来创建新数组。map() 方法不会对没有值的数组元素执行函数。
map() 方法不会更改原始数组。
var numbers1 = [45, 4, 9, 16, 25]; var numbers2 = numbers1.map(myFunction); function myFunction(value, index, array) { return value * 2; } console.log(numbers2) // [90, 8, 18, 32, 50]
-
Array.filter()
:创建一个包含通过测试的数组元素的新数组。var numbers = [45, 4, 9, 16, 25]; var over18 = numbers.filter(myFunction); function myFunction(value, index, array) { return value > 18; } console.log(over18); // [45, 25]
-
Array.reduce()
:在每个数组元素上运行函数,以生成(减少它)单个值。reduce() 方法不会减少原始数组。
var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduce(myFunction); function myFunction(total, value, index, array) { return total + value; }