8.slice: 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。同样不会对原数组改变
let arr12 = [24, 3, 6, 8, 7, 9]; //省略第二个参数end 会一直拷贝到数组结尾处的元素 let res12 = arr12.slice(3); console.log(res12); // [8,7,9]
9. splice(start[, deleteCount[, item1[, item2[, ...]]]]): 这个方法之前一直和slice分不清楚,其实它们有个最大的不同点就是,这个方法是改变原数组的,不会重新开辟一个空间去改变数组长度。
deleteCount 可选 整数,表示要移除的数组元素的个数。
item1, item2, ... 可选 要添加进数组的元素,从start 位置开始。如果不指定,则 splice() 将只删除数组元素。
let arr13 = [1, 3, 5, 7, 9, 7, 2, 6, 57, 7]; //增 第一个参数代表位置索引 arr13.splice(1, 0, "2"); // [1, "2", 3, 5, 7, 9, 7, 2, 6, 57, 7] //删 第二个参数表示删除元素的个数,当省略时表示从索引处到数组结尾处全删 arr13.splice(2); //[1,"2"] //改 arr13.splice(0, 1, "哈哈"); console.log(arr13); // ["哈哈", "2"]
//例题熟悉一下这两个方法: 从第 2 位开始删除 0 个元素,插入“drum” var myFish = ["angel", "clown", "mandarin", "sturgeon"]; myFish.splice(1, 0, "drum"); console.log(myFish); //["angel", "drum", "clown", "mandarin", "sturgeon"] //从第 3 位开始删除 1 个元素 var myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"]; myFish.splice(3, 1); console.log(myFish); // ["angel", "clown", "drum", "sturgeon"]
10. pop:没有参数,负责删除数组的最后一个元素,改变原数组
var arr14 = [1, 4, 5, 9]; arr14.pop(); //[1, 4, 5] console.log(arr14);
11. push: 像数组末尾添加一个元素或多个元素 arr.push(element1, ..., elementN)
var arr14 = [1, 4, 5, 9]; arr14.push("3"); //[1, 4, 5,9,"3"] arr14.push("3", 2); console.log(arr14);
12.shift: 删除数组的第一个元素 改变原数组
var arr15 = [1, 4, 5, 9]; arr15.shift(); //[4, 5, 9] console.log(arr15);
13.unshift: 在数组首位添加一个或多个元素
var arr16 = [6, 1, 4, 5, 9, 8]; arr16.unshift("5", 3); //["5", 3, 6, 1, 4, 5, 9, 8] console.log(arr16);
var arr17 = [2, 3, 4]; arr17.fill(6); //[6,6,6] arr17.fill("7", 0, 2); //["7", "7", 6] console.log(arr17);
15. flat: 大家对这个方法一定不熟悉,我在一次做项目的时候用到了它,下面看看它的作用 方法很强大 扁平化数组 但是有兼容性的影响
// 参数表示扁平化的层级 var arr18 = [2, 6, 8, [9, 10, 26]]; let res18 = arr18.flat(1); //[2, 6, 8, 9, 10, 26] //Infinity 可以扁平任意深度的数组 // let res18 = arr18.flat(Infinity) //[2, 6, 8, 9, 10, 26] console.log(res18);
16.join: 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
// 不改变原数组 var arr19 = [2, 2, 6, 3, 4, 5, 6, "y"]; var res19 = arr19.join(","); //2,2,6,3,4,5,6,y var res20 = arr19.join(""); //2263456y console.log(res20);
17. find : 方法返回数组中满足提供的测试函数的第一个元素 的值。否则返回 undefined。 注意是第一个
var arr21 = [ { name: "lz", age: 21 }, { name: "lx", age: 21 }, { tine: "xx", ageL: 23 } ]; let res21 = arr21.find(ele => ele.age === 21) console.log(res21) //{name: "lz", age: 21} 返回元素 //想要所有符合条件的 就可以用filter方法 let res22 = arr21.filter(ele => ele.age === 21) console.log(res22) //返回数组 [{…}, {…}]
18.findIndex: 方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。 注意是第一个
var arr23 = [ { name: "lz", age: 21 }, { name: "lx", age: 21 }, { tine: "xx", ageL: 23 } ]; let res23 = arr23.findIndex(ele => ele.age === 21) console.log(res23) //0 返回索引
19.indexOf: 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
var arr24 = [1, { name: "lz", age: 21 }, { name: "lx", age: 21 }, { tine: "xx", ageL: 23 } ]; let res24 = arr24.indexOf(1) console.log(res24) //0 返回索引
要多加练习欧!