==================== 增删 ====================
pop 删除数组中最后一个元素并返回
会改变数组的长度,并返回删除的元素
var arr1 = [1, 2, 3, 4, 5]
console.log(arr1.pop());
// 结果为 5
console.log(arr1);
// 结果为 [1, 2, 3, 4]
push 向数组末尾添加一个或多个元素,并返回新的长度
改变数组长度
var arr1 = [1, 2, 3, 4, 5]
arr1.push(6, 7, 8)
console.log(arr1);
// 结果为 [1, 2, 3, 4, 5, 6, 7, 8]
shift 把数组的第一个元素从其中删除,并返回第一个元素的值
改变数组长度
var arr1 = [1, 2, 3, 4, 5]
console.log(arr1.shift());
//结果为 1
console.log(arr1);
// 结果为 [2, 3, 4, 5]
unshift 向数组的开头添加一个或者更多元素,并返回新的长度
改变数组长度
var arr1 = [1, 2, 3, 4, 5]
arr1.unshift(6, 7, 8)
console.log(arr1);
// 结果为: [6, 7, 8,1, 2, 3, 4, 5]
==================== 截取 ====================
splice 添加或删除数组中的元素
改变组长度
arr.splice( 参数1 , 参数2, 参数3 )
参数1:开始的索引位置(不包含)
参数2:删除索引往后的个数
参数3:添加的新内容,可以是多个
var arr1 = ["a", "b", "c", "d", "e", "f"]
arr1.splice(2, 2)
// 结果
var arr1 = ["a", "b", "e", "f"]
arr1.splice(2, 0, 'g', 'h')
// 结果
var arr1 = ["a", "b", 'g', 'h', "e", "f"]
slice 从已有的数组中返回选定的元素
截取数组
不改变数组长度
arr.splice( 参数1 , 参数2 )
参数1:开始的索引位置(包含)
参数2:结束的索引位置(不包含)
// ======= 正数使用 ==========
var arr1 = [0, 1, 2, 3, 4]
var a = arr1.slice(2, 4)
console.log(a);
// 结果为 [2,3]
// ======== 负数使用 =========
var arr1 = [0, 1, 2, 3, 4]
// 索引:arr1 = [-4,-3,-2,-1,-0]
var a = arr1.slice(-3, -2)
console.log(a);
// 结果为 [2]
截取字符串
可提取部分字符串的某个部分,并以新的字符串返回被提取的部分(不改变长度)
str.splice( 参数1,参数2 )
参数1:开始位置(不包含),只给参数1就从开始位置一直提取到末尾并返回
参数2:结束位置(包含)
var str = "www.baidu.com"
console.log(str.slice(5));
// 结果为 "aidu.com"
console.log(str.slice(5, 7));
// 结果为 "ai"
==================== 排序 ====================
reverse 颠倒数组中元素的顺序
不改变原数组
var str = ['a', 'b', 'c', 'd', 'e']
var a = str.reverse()
console.log(a);
// 结果为 ['e','d','c','b','a']
sort 对数组的元素进行排序
会改变原数组
数字的 升 / 降 排序
使用时,定义一个方法,传入两个参数( a , b )
当 a - b 时为从小到大排序
当 b - a 时为从大到小排序
// 降序
var arr = [40, 100, 1, 5, 25, 10];
arr.sort(function (a, b) { return b - a });
console.log(arr);
// 结果为 [100, 40, 25, 10, 5, 1]
// 升序
var arr = [40, 100, 1, 5, 25, 10];
arr.sort(function (a, b) { return a - b });
console.log(arr);
// 结果为 [1, 5, 10, 25 ,40 ,100]
字母的 升 / 降 排序
直接使用方法即可,默认为升序,可以用 reverse() 反转为降序
var str = ["Banana", "Orange", "Apple", "Mango"];
var a = str.sort();
console.log(a);
// 结果为 ["Apple", "Banana", "Mango", "Orange"]
var b = a.reverse();
console.log(b);
// 结果为 ["Orange", "Mango", "Banana", "Apple"]
==================== 连结 / 拼接 ====================
concat 连接两个或多个数组
不会改变现有数组,而仅仅会返回连接数组的一个副本
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var kai = ["Robin"];
var children = hege.concat(stale, kai);
console.log(children);
// 结果为 ["Cecilie", "Lone","Emil", "Tobias", "Linus","Robin"]
==================== 状态 ====================
join 将数组内所有元素转为一个字符串
通过特定的字符串将数组内的元素拼接
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join(" and ");
console.log(energy)
// 结果为 " Banana and Orange and Apple and Mango "
split 把一个字符串分割成字符串数组
不改变原字符串
var str = "How are you doing today?";
// 分割每一个字母,包括空格
var n = str.split("");
console.log(n);
// 结果为 ["H", "o", "w", " ", "a", "r", "e", " ", "y", "o", "u", " ", "d", "o", "i", "n", "g", " ", "t", "o", "d", "a", "y", "?"]
// 通过特定的字符分割,并取指定个数
var n = str.split(" ", 3);
console.log(n);
// 结果为["How", "are", "you"]
// 通过某个特定的字母进行分割
var n = str.split("o");
console.log(n);
// 结果为 ["H", "w are y", "u d", "ing t", "day?"]