# 数组
1. 数组是个线性结构
2. 在js里它没有固定的大小
3. 它也不要求所有元素的数据类型都一样(但你最好保证他们是一样的)
# 创建数组的方式
## 字面量(推荐)
```js
const nums = [1, 2, 3];
```
## 使用Array里的静态方法
```js
const strs = Array.from('Hello World')
```
# API
javascript的数组**实现了栈和队列**
## 追加一个元素
```js
num.push(10)
```
## 追加多个元素
```js
num.push(11,15)
```
## 在数组前面加一个元素
```js
strs.unshift('a')
```
## 从数组尾部删除一个元素
```js
num.pop()
```
## 在数组头部删除一个元素
```js
strs.shift()
```
> 注意以上都是命令性的操作,虽然他们都有返回值但最好不用使用他们(对于追加来说会返回你追加的元素,对于弹出来说会返回弹出来的元素)
-----
## 指定区间
```js
nums.slice(1,3); // 从1到3
```
记得是**左闭右开**区间!!!
## 映射
```js
nums.map(x => x * 2) // 获取所有元素都乘2了的版本
```
## 过滤
```js
nums.filter(x => x % 2 === 0) // 只要偶数
```
## 累积
```js
nums.reduce((result x) => result + x, 0);
```
## 反转
```js
strs.reverse()
```
## 拼成字符串
```js
strs.join('')
```
> 以上为 **函数式**操作,不会更改原有数组,它的返回值才是有意义的结果。
---
# 获取长度
```js
num.length
```
> 把nums.length复制为0可以清空数组
# 索引一项
使用下标索引即可
```js
nums[nums.length-1]; // 最后一个元素
```
> 本文作者:不爱喝橙子汁
- 自述
- 学会提问
- 起步
- 安装
- 版本升级
- 1.x 升级 2.x 常见问题
- 命令行模式下node-sass安装错误
- 查看版本
- uView UI 1.x 相关问题
- 安装
- Popup 弹窗
- tabs 标签
- Waterfall 瀑布流
- Table 表格
- Dropdown 下拉菜单
- uview-ui组件篇
- u-upload监听beforeRead事件无效
- 组件怎么关不了
- 导航栏不默认返回好麻烦
- ref怎么获取不到
- z-index拉满都覆盖不了map
- u-text对手机号脱敏
- u-input的placeholder去不掉
- 服务端返回数据,form表单验证错误
- checkbox增加选中面积
- uview-ui组件篇/checkbox无法取消选中
- 小程序输入框的placeholder会穿透到弹出层
- JavaScript篇
- 判断数据类型
- 数组操作
- 节流与防抖函数
- this怎么就不对
- 计算地图上两点间的距离
- CSS篇
- 我要超出显示省略号
- uniapp中小程序样式穿透问题
- 关键帧与动画
- CSS动画属性总结
- 过渡与动画
- 正则表达式篇
- 身份证号
- 手机号
- 是否合法的http/https域名
- 数据处理篇
- 对数组分组
- 深拷贝对象
- 提取数组属性
- 提取对象属性
- 常见问题
- 如何给由组件触发的事件中传入自定义的参数
- 分类的双列联动
- 三级联动的实现
- 小程序预览提示包过大
- 框架安装失败
- 表格、瀑布流、下拉列表 组件为什么没有了
- tabBar组件怎么用
- 时间、日历、选择器相关问题
- 字体图标不显示
- class 或 /deep/ 不生效