console.log(chars.join(“”)); // hello 什么都不输入,是无缝拼接
concat() - 拼接数组
concat(a1,[a2,a3,…])
拼接数组,将当前数组和其他元素或者数组拼接为一个新数组,返回新数组。
此函数不改变原数组。
参数既可以是一个值,也可以是一个数组。
可以接收任意多个参数。
若参数为数组,会将数组中的元素打散后再拼接。
代码案例
var arr1 = [1,2,3]
var newarr = arr1.concat(4,5,6)
console.log(arr1) // 1,2,3
console.log(newarr) // 1,2,3,4,5,6
var arr2 =[7,8,9]
var newarr2 = arr1.concat(11,22,arr2)
console.log(newarr2) // 1,2,3,11,22,7,8,9
var arr3 = [[1,2]];
arr3[9] = “a”;
var arr4 =[7,8,9];
var n = arr3.concat(arr4); // 当前数组结构保持不变!!!
console.log(n); // [[1,2],“a”,7,8,9]
slice() - 截取数组元素
slice(开始位置下标,结束位置下标加一) 包头不包尾
选取当前数组中指定开始到结束位置的元素,组成新数组并返回。
不改变原数组。
支持负数下标,表示从后往前数。
第二个参数可以省略,表示一直取到数组结尾。
若一个参数都不写,表示选取所有元素,即复制数组。
案例代码
// slice() 选取当前数组中指定开始到结束位置的元素,组成新数组并返回。
var arr =[“a”,“b”,“c”,“d”,“e”,“f”,“g”];
var a1 = arr.slice(2,5); // 包头不包尾
console.log(a1); // cde
console.log(arr); //abcdefg
var a2 =arr.slice(2,-2);
console.log(a2); // cde
var a3 = arr.slice(2);
console.log(String(a3)) // cdefg 第二个参数省略表示一直取到结尾
var a4 = arr.slice();
console.log(a4); //abcdefg 若一个参数都不写,表示选取所有元素,即复制数组。
splice() - 删除/插入/替换元素
splice(开始删除的起始位置,删除多少个元素,添加的新元素,可多个)
删除元素,并向数组中添加新元素。
会直接修改原数组!
会有返回值,返回被删除的元素组成的数组。
下标支持负数。
案例代码
// 删除从 i 位置的 n 个元素。
var a1 =[1,2,3,4,5,6,7,8,9];
a1.splice(2,4);
var d1 = console.log(String(a1)); // 1 2 7 8 9
console.log(d1) // 查看被删除的元素 3 4 5 6
// 删除从 i 位置到结尾的所有元素
var a2 =[1,2,3,4,5,6,7,8,9];
a2.splice(3); // 省略第二个参数表示删除到结尾
console.log(a2); // 1 2 3
// 删除倒数 n 个元素
var a3 =[1,2,3,4,5,6,7,8,9];
a3.splice(-3);
console.log(String(a3)); // 1 2 3 4 5 6
// 插入元素
var a4 =[1,2,3,4,5,6,7,8,9];
a4.splice(2,0,“a”);
console.log(String(a4)) // 1 2 a 3 4 5 6 7 8 9
// 替换
// 将从 i 位置开始的元素替换为新元素
var a5 =[1,2,3,4,5,6,7,8,9];
a5.splice(2,3,“a”,“b”,“c”);
console.log(String(a5)); // 1 2 a b c 6 7 8 9
reverse() - 倒序排列数组
reverse()
颠倒数组中元素的顺序。
会直接修改原数组。
案例代码
var n = [1,2,3,4,5,6];
n.reverse();
console.log(String(n)); // 6 5 4 3 2 1
sort() - 排序
sort()
排序是默认将数组元素临时转变为字符串,然后比较 Unicode 编码由小到大排列。
对数组元素进行排序。
会直接修改原数组。
案例代码
var arr = [2,3,7,9,4,6];
arr.sort(); // 默认由小到大升序排列
console.log(String(arr)) // 2 3 4 6 7 9
var arr2 =[“tom”,“jerry”,“smith”,“mia”,“jack”];
arr2.sort();
console.log(String(arr2)); //jerry jack mia smith tom
var arr3 = [12,3,123,23,2,1];
arr3.sort(); // 按Unicode 编码排列,不是数字大小排列
console.log(String(arr3)); // 1,12,123,2,23,3
var arr4 = [12,3,123,23,2,1];
arr4.sort(sorFn); // 传入一个自定义的比较函数,作为排序依据
function sorFn(a,b) { // 固定用法,升序 背锅
return a-b;
}
function sorFn1(a,b) { // 固定用法,降序 背锅
return b-a;
}
console.log(String(arr4)); // 1,2,3,12,23,123
arr4.reverse();
console.log(String(arr4)); // 123 23 12 3 2 1
栈和队列
JS 中可以通过操作数组,实现 **栈(Stack)**和 **队列(Queue)**的功能。
栈,是一端封闭,只能从另一端进出的数据结构。
特点:(LIFO,Last In First Out)先进后出,即后插入的数据,先被取出。
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
片转存中…(img-CV1QAfId-1715465612243)]
[外链图片转存中…(img-R0Y8o0zk-1715465612244)]
[外链图片转存中…(img-PqfC5ysp-1715465612244)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!