打开全栈工匠技能包-1小时轻松掌握SSR
两小时精通jq+bs插件开发
生产环境下如歌部署Node.js
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
网易内部VUE自定义插件库NPM集成
谁说前端不用懂安全,XSS跨站脚本的危害
webpack的loader到底是什么样的?两小时带你写一个自己loader
let arr = [1, 2, 3, 4, 5]
let res = arr.pop()
console.log(res);//5
console.log(arr);//[ 1, 2, 3, 4 ]
let res2 = arr.shift()
console.log(res2);//1
console.log(arr);//[ 2, 3, 4 ]
### unshift()
`unshift()`方法向数组的开头添加一个或多个元素,并且返回改变后数组的长度。
用法:
let arr = [1, 2, 3, 4, 5]
let res = arr.unshift(0, 11)
console.log(res);//7
console.log(arr);//[ 0, 11, 1, 2, 3, 4, 5]
### splice()
`splice()`方法添加或删除数组中的元素,有返回值,以数组形式返回删除的元素,没有删除则返回空数组。
用法:`splice`可以接收三个参数,`splice(index, n, x)`
`index`: 要删除或插入元素的位置, 该参数是必需的。
`n`: 要删除的元素个数, 如果不想删除任何元素, 可以将该参数设置为0。
`x`:要插入到数组中的新元素,可以是多`个x1,x2,x3...`如果不想插入任何元素,则可以省略这些参数。
let arr = [1, 2, 3, 4, 5]
let res = arr.splice(1, 2, 6, 7, 8)
console.log(res);//[ 2, 3 ]
console.log(arr);//[ 1, 6, 7, 8, 4, 5 ]
let res2 = arr.splice(1, 0, 8)
console.log(res2);//[]
console.log(arr);//[1, 8, 6, 7, 8, 4, 5]
### sort()
`sort()`方法可以对数组的元素进行排序,并且返回出排序后的数组。
用法:`sort()`默认为升序排列。 直接写`sort()`只能处理10以内的数字排序,处理10以上的我们需要传递一个参数,这个参数必须是函数,函数通过返回一个值来决定这两个值需不需要交换位置。 如果`a-b > 0`,则`a`和`b`交换位置。
let arr = [10, 12, 11, 19, 13, 15, 6];
let res1 = arr.sort(function (a, b) { return a - b; }); //实现由小到大
console.log(res1);//[6, 10, 11, 12,13, 15, 19]
let res2 = arr.sort(function (a, b) { return b - a; }) //实现由大到小
console.log(res2);//[19, 15, 13, 12,11, 10, 6]
### reverse()
`reverse()`方法可以颠倒数组中元素的顺序,并且返回颠倒后的数组。
用法:
let arr = [1, 2, 3, 4, 5]
let res = arr.reverse()
console.log(res);//[ 5, 4, 3, 2, 1 ]
console.log(arr);//[ 5, 4, 3, 2, 1 ]
## 不会改变原数组
`Js`中数组有一些方法不会直接改变原始数组,会返回出一个新的数组。
### slice()
`slice()`方法可提取数组的某些元素,并以新的数组返回被提取的元素。
用法:`slice(n,m)` 从索引`n`(包含`n`)开始找到索引`m`(不包含`m`)处。把找到的内容作为一个新的数组返回,原有数组是不改变的。
let arr = [1, 2, 3, 4, 5]
let res = arr.slice(2, 4)
console.log(res);//[ 3, 4 ]
console.log(arr);//[ 1, 2, 3, 4, 5 ]
slice(n)// 从索引n(包含n)开始找到末尾
slice(0) // slice() 将原来数组原封不动的复制一份
### concat()
`concat ()`方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
用法:
let arr1 = [1, 2, 3, 4, 5]
let arr2 = [7, 8]
let res = arr1.concat(arr2)
console.log(res);//[ 1, 2, 3, 4, 5, 7, 8]
console.log(arr1);//[ 1, 2, 3, 4, 5 ]
console.log(arr2);//[ 7, 8 ]
### filter()
`filter()`用于对数组进行过滤。
用法:它创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。其中函数`function` 为必须,数组中的每个元素都会执行这个函数。且如果返回值为`true`,则该元素被保留;函数可以接受三个参数(`item, index, arr`),第一个参数`item`也为必须,代表当前元素的值,第二个参数为当前元素的索引值,第三个参数为数组本身。
const arr = [
{ name: ‘song’, age: 18 },
{ name: ‘Y’, age: 19 },
{ name: ‘son’, age: 20 },
{ name: ‘so’, age: 21 }
]
const newArr = arr.filter((item, index, arr) => {
return item.age > 19
})
console.log(newArr);//[ { name: ‘son’, age: 20 }, { name: ‘so’, age: 21 } ]
console.log(arr);//[ { name: ‘song’, age: 18 },{ name: ‘Y’, age: 19 },
//{ name: ‘son’, age: 20 }, { name: ‘so’, age: 21 }]
### forEach()
`forEach()`方法用于调用数组的每个元素,并将元素传递给回调函数。
用法:回调函数中可以接受三个参数(`item,index,arr`),第一个参数`item`也为必须,代表当前元素的值,第二个参数为当前元素的索引值,第三个参数为数组本身。
const arr = [
结束
一次完整的面试流程就是这样啦,小编综合了腾讯的面试题做了一份前端面试题PDF文档,里面有面试题的详细解析,分享给小伙伴们,有没有需要的小伙伴们都去领取!
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】