## 判断是不是数组类型
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
Array.isArray( arr ) // 返回true就是数组,否则就不是数组
~~~
<br>
## 数组合并
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.concat([2,3,4])//两个数组合并
~~~
<br>
## 数组转字符串
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var str = arr.join('-') //数组合并成字符串, 传入的参数是分隔符
console.log(str)
~~~
<br>
## 字符串分割成数组
~~~
var str = "1-2-3-4-5"
var arr2 = str.split('-') //字符串分割成数组
console.log(arr2)
~~~
<br>
## 查找一个值在数组里面的下标
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var index = arr.indexOf(5); //数组查找元素的下标,找不到就返回-1
console.log(index)
~~~
<br>
## 数组删除元素
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.splice(2, 1); //数组删除元素 第一个参数是下标,第二个参数是删除的数量
~~~
<br>
## 数组插入元素
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.splice(2, 0, 99); //数组插入元素 第三个参数以及后边的参数是插入的值(支持插入多个)
~~~
<br>
## 数组后面添加元素(压栈)
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.push(-100); //前面添加一个值
~~~
<br>
## 数组前面添加元素
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.unshift(-100); //前面添加一个值
~~~
<br>
## 数组后面删除一个元素(出栈)
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.pop(); //后边弹出(删除)一个值
~~~
<br>
## 数组前面删除一个元素
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.shift(); //前面弹出(删除)一个值
~~~
<br>
## 数组倒转(不能用现成函数)
~~~
var arr = [3,6,2,4,1,5]
var tmp = [];
for (var i = arr.length - 1; i >= 0; i--) {
tmp.push(arr[i])
}
console.log(tmp)
~~~
<br>
## 数组升序
~~~
var arr = [3,6,2,4,1,5]
arr.sort()
console.log(arr)
~~~
<br>
## 数组降序
~~~
var arr = [3,6,2,4,1,5]
arr.sort(function (a,b) {
return b-a
})
console.log(arr)
~~~
<br>
## 数组去重
~~~
var arr=[1,2,3,3,4,4,5,5,6,1,9,3,25,4];
var newArr = [];
var len=arr.length;
for (var i = 0; i < len; i++) {
if(newArr.indexOf(arr[i]) === -1){
newArr.push(arr[i]);
}
}
console.log(newArr);
~~~
<br>
## 伪数组是什么,怎么把伪数组转化成真正的数组
无法直接调用数组方法或期望length属性有什么特殊的行为,不具有数组的push,pop等方法,但仍可以对真正数组遍历方法来遍历它们。典型的是函数的argument参数,还有像调用getElementsByTagName,document.childNodes之类的,它们都返回NodeList对象都属于伪数组。可以使用Array.prototype.slice.call(fakeArray)将数组转化为真正的Array对象。
<br>
- 初级前端题
- 必会
- http协议
- 跨域
- cookie与storage
- 移动端问题
- 性能优化
- Vue全家桶
- 有哪些常用的es6语法?
- 项目
- 闭包
- JSON
- 数据类型与运算
- 数组
- DOM
- 字符串
- 要会
- async与await
- 正则
- this
- 数据加密
- 实时获取数据
- 原生ajax
- 异步打印
- css相关
- 杂七杂八
- webpack
- 一般
- mvvm模式
- 异步请求
- XSS
- 其他dom问题
- 冷门
- 浏览器缓存机制
- 新
- 浏览器事件轮询
- Promise
- 树的深度优先与广度优先
- 拷贝
- 继承
- Vue
- 跨域
- 排序
- 浏览器
- 浏览器入门
- 浏览器内核知识
- 浏览器渲染原理
- 浏览器性能调优
- 自动化构建
- 字符编码
- git
- 一些题目
- 其他
- 逻辑思维题
- 互联网公司招聘信息如何阅读
- bat面试