## 排序
```
var a =[5,6,8,50,7,15,18,,7,25,33,15]
```
方法一:
```
var a =[5,6,8,50,7,15,18,25]
for(var i=0;i<a.length;i++){
for(var j=i+1;j<a.length;j++){
if(a[i]>a[j]){
var temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
```
方法二:
```
a.sort(function(i,j){
return i-j;
})
```
## 找出数组中的偶数
方法一:
```
var temp=[];
for(var i=0;i<a.length;i++){
if(a[i]%2==0){
temp.push(a[i])
}
}
```
方法二:
```
var b=a.filter(x=>(x%2==0))
console.log(b)
```
## 把数组颠倒
方法一:
```
a.reverse();
```
方法二:
```
for (var i=0;i<a.lenght/2;i++){
var temp=a[i];
a[i]=a[a.length-i-1];
a[a.length-i-1]=temp;
}
```
## 去重
#### **一、排序后相邻去除法**
* 给传入数组排序,排序后相同值相邻,
* 然后遍历时,新数组只加入不与前一值重复的值。
* 会打乱原来数组的顺序
~~~
var array=[1,1,2,2,3,4,5]
function uniq(array){
array.sort();
var temp=[array[0]];
for(var i = 1; i < array.length; i++){
if( array[i] !== temp[temp.length-1]){
temp.push(array[i]);
}
}
return temp;
}
console.log(uniq(array)//1,2,3,4,5
~~~
#### **二、双重循环法**
~~~
function uniq(array) {
var temp = [];
var index = [];
var l = array.length;
for (var i = 0; i < l; i++) {
for (var j = i + 1; j < l; j++) {
if (array[i] === array[j]) {
i++;
j = i;
}
}
temp.push(array[i]);
index.push(i);
}
console.log(index);
return temp;
}
var aa = [1, 2, 2, 3, 5, 3, 6, 5];
console.log(uniq(aa));
~~~
#### **三、include方法**
```
var arr=[2,2,6,4,1,5,8,4];
var temp=[]
arr.forEach(element=>{
if(!temp.includes(element)){
temp.push(element)
}
});
console.log(temp)
```
#### **四、set**
```
var arr=[2,2,6,4,1,5,8,4];
console.log([...new Set(arr)])
```
#### **方法五**
```
var arr=[2,2,3,3,4,8,6];
var test=[];
var obj={};
arr.forEach(ele=>{
if(!obj[ele]){
obj[ele]='a';
test.push(ele);
}
})
console.log(test)//2,3,4,8,6
console.log(obj)//{2:"a",3:"a",4:"a",6:"a",8:"a"}
```
- 空白目录
- 1.css、html
- 1.1 css的选择器有哪些
- 1.2 display属性
- 1.3 图片与文字会有空隙 原理是什么
- 1.4 简述一下你对HTML语义化的理解?
- 1.5 PNG,GIF,JPG的区别及如何选
- 1.6 css中有哪些继承属性
- 1.7 如何实现一个元素的垂直水平居中
- 1.9 position的属性以及特点
- 1.10 @import与link的区别
- 1.11 介绍一下你对浏览器内核的理解
- 1.12 title与h1的区别、b与strong的区别、i与em的区别
- 1.8display: none;与visibility: hidden;的区别
- 1.13 CSS和JS的位置会影响页面效率
- 1.14 对HTML5的理解
- 1.15 前端页面有哪三层
- 1.16 对web标准及w3c的理解
- 1.17 css3新增了哪些属性
- 1.18 form表单里面action的作用(form表单的属性)
- 1.19 src和href的区别
- 1.20 px、rpx、em、rem、vw的区别
- 1.22 table表格中合并行列
- 1.23 雪碧图以及它的优点;背景吸附
- 1.24什么是锚点
- 2.JavaScript
- 2、什么是ajax以及它的优缺点
- 3、json
- 4、数组
- 4.1 数组的增删改查
- 4.2 获取数组中最大值
- 4.3 遍历
- 4.4 排序,找出偶数,数组颠倒,去重
- 4.5 复制数组的方法
- 4.6 判断是否为数组
- 4.7 数组对象去重
- 5、call、bind、apply的区别
- 6、==与===的区别
- 7、null,undefined 的区别
- 8、如何解决跨域问题
- 9、dom
- 10、get与post的区别
- 11、原型与原型链
- 12、正则
- 13、谈谈document.ready和window.onload的区别
- 14、document.writer和innerHTML
- 15、用js实现一个事件监听,再用jq实现一个事件监听
- 16、sessionStorage,localStorage,cookie区别
- 16.1 localStorage和sessionStorage
- 17、 let/const/var的区别
- 18、深拷贝与浅拷贝
- 19、JavaScript有哪些方法定义对象
- 20、定时器
- 23、promise
- 24、贪婪模式和非贪婪模式的区别
- 25、回调函数
- 26、字符串与数字互相转换
- 27、字符串的方法
- 28、append与prepend
- 29、ajax、vue、react取数据
- 30、new操作符的作用
- 31、事件捕获与事件冒泡
- 31、js中对this关键字的理解
- 32、axios封装http请求
- 4、其他问题
- 5、面试日志清单
- 6、文字表达相关
- 1、输入URL到看到页面发生的全过程
- 2、http请求
- 3、什么是路由
- 4、前端开发有哪些优化问题
- 5、高质量的代码具备哪些条件
- 6、LESS和Sass之间的区别
- 7、es6有哪些新特性
- 8、什么是xml
- 9、栅格系统;媒体查询
- 10、浏览器的缓存机制
- 11、mvc与mvvm的区别
- 12、对模块化的理解
- 13、对前端工程师的理解
- 14、什么是面向对象
- 15、严格模式与混杂模式
- 16、Doctype作用是什么
- 17、什么是js闭包
- 7、计算题
- 8、小程序
- 1、小程序页面的生命周期
- 9、简历
- 10. 如何分盘
- 11.vue
- 1.0 生命周期及组件的生命周期
- 2.0 keep-alive
- 12.0 爬楼梯问题
