- 1、数组
- 1.1 理解
- 1.2 创建
- 1.3 length 属性
- 1.4 下标
- 1.5 访问数组元素
- 1.6 修改数组元素
- 1.7 数组的方法(数组内置的方法)
- 1.7.1 push()
- 1.7.2 pop()
- 1.7.4 unshift()
- 1.7.5 shift()
- 1.7.6 splice()
- 1.7.7 slice()
- 1.7.8 sort()
- 1.7.9 concat()
- 1.7.10 join()
- 1.7.11 indexOf()
- 1.7.12 lastIndexOf()
- 1.7.13 reverse()
- 1.7.14 Set()
- 2、遍历数组(循环)
- 2.1 for 循环
- 2.2 for in 循环
- 2.3 forEaach
- 2.4 map
- 2.5 filter
- 2.6 find
- 2.7 every
- 2.8 some
- 3、排序(冒泡 & 选择)
- 3.1 冒泡排序
- 3.2 选择排序
- 4、Math() 对象
- 4.1 概念
- 4.2 部分API
- 相关文章
1.1 理解2、遍历数组(循环)数组也是对象(对象中特殊的结构)
1.2 创建
- 用于存储数据
- 数据存储顺序是按顺序进行排列的
- 存储的数据原则上讲是可以是任意类型;
构造函数的写法:
var colors = new Array('red','blue','green');字面量: (常用)
var colors = ['red', 'blue', 'green'];1.3 length 属性数组默认的属性,用于展示当前数组存储数据的长度。
数组名.length;直接增加不存在的下标:
1.4 下标
若前方存在空标,则用空值占用;(一般不这样用)
1.5 访问数组元素
- 数组中每一个元素都对应一个下标,
- 下标 从 0 开始依次增大。
- 最后一个元素的下标 = 数组长度(length) - 1;
数组[下标];1.6 修改数组元素数组[下标] = '新值' //原值被覆盖1.7 数组的方法(数组内置的方法) 1.7.1 push()array.push(参数1);
参数1:输入需要插入的元素 向数组的末尾增加新元素。1.7.2 pop()array.pop();
删除数组末尾的元素。1.7.4 unshift()array.unshift(元素);
添加元素到数组的头部。1.7.5 shift()array.shift();
删除数组头部元素。1.7.6 splice()array.splice(参数1,参数2,参数3);
1、参数1:下标,参数2:删除长度,参数3:新增加元素 2、可以在任意位置给数组添加或则删除元素。 3、后面两个参数可以不写。 //删除任意位置 任意长度 colors.splice(1,1); //从下标1开始,删除一个; //新增 colors.splice(1, 0, 'pink'); //从1开始,加入元素 //替换 colors.splice(1, 1, 'red'); //将原有位置的元素删除,并插入新元素 //删除后,会导致数组长度变化,此时需要解决该问题。1.7.7 slice()array.slice();
用于抽取当前数组元素中的一段元素,然后组成一个新的数组。 var newColor = color.slice(2); //从原数组中,下标为2的元素开始往后的所有元素抽取出来组成一个数组,原数组不会被影响。 var newColors = color.slice(); //不给参数,相当于是复制原数组 var newNumbe = numbe.slice(1, 2) //从下标 1 开始截取元素,至从左往右开始计算的第 2 个值1.7.8 sort()
- start: 开始下标,包含;
- end:结束下标,不包含,如果不给该值,就截取剩下所有的元素。
array.sort();
对数组元素进行排序。
字母类型数据,默认按首字母排序
数值类型数据,默认按从左往右第一位开始,依次从小到大排序
如果不加入参数的情况,默认按照字母升序,如果元素不是字符串的话,会调用 toString()方法将元素转为字符串
加参数 语法:
array.sort(function(a, b) { return 正负数; })
- function : 可选,用来指定某种顺序进行排列的函数。
- a 和 b 分别代表第一个、第二个用于比较的元素。
- 如果 return 小于 0, 那么 a 排在 b 的前面;
- 如果 return 等于 0, 那么 a 和 b 的位置保持不变;
- 如果 return 大于 0, 那么 b 排在前面;
如果是数字的话,可以通过 a - b 判断大小
arr.sort(function(a, b){ return a - b; //升序 }) arr.sort(function(a, b){ return b - a; //降序 })1.7.9 concat()array.concat();
1.7.10 join()
- 合并两个或则多个数组,并返回新数组。
array.join(参数);
- 链接数组所有元素组成一个字符串。 //默认各元素之间通过','链接
参数为:空字符串,则各元素直接链接; 参数为:'=',则以参数链接各个元素;1.7.11 indexOf()array.indexOf(参数);
从左往右开始找,到到第一个就停止查找;
返回数组中第一个元素与指定相等的下标,如果找不到该元素,返回 -1.
colors.indexOf('元素'); //查找到数组中 元素 后,返回元素的下标,若找不到,返回 -1.1.7.12 lastIndexOf()array.lastIndexOf();
- 从左往右开始找,到到第一个就停止查找;
- 返回数组中第一个元素与指定相等的下标,如果找不到该元素,返回 -1.
colors.lastIndexOf('元素'); //擦找到数组中 元素 后,返回元素的下标,若找不到,返回 -1.1.7.13 reverse()array.reverse();
- 颠倒数组中元素的排列顺序
1.7.14 Set()
Set ()
是 Es6 中的第六个版本,新增加的数据结构,类似数组,但是没有重复元素.
Set 函数可以接收一个数组作为参数,用于初始化。
var list = new Set();list.add(‘a’); //add()添加元素
通过使用 size 获取Set 长度
删除 Set 中的元素:list.delete()删除 Set元素 不是下标;
通过 has 查找 Set 中值,返回布尔值;
通过 Clear 清除 Set 中的所有元素;
Set 遍历:
// 由于 Set 结构没有键名, keys 和 values 行为一致。(属性和值相同) [...new Set(arr)] Set.Keys() --> 返回所有的键名; Set.values() --> 返回所有的键值;
2.1 for 循环3、排序(冒泡 & 选择)for(var i = 0; i < arr.length; i++){ console.log(arr[i]) }2.2 for in 循环遍历数组:
// arr 是数组 // i 代表数组的下标结构:
for(var i in arr){ console.log(i, arr[i]); }遍历对象:
// 对象.属性名 -- 这种方式属性名不能是变量 // 对象['属性名'] // i 是属性名 for(var i in obj){ console.log(i, obj[i]); }2.3 forEaachforEaach(function(itme, index, array){})
没有规则,遍历数组2.4 map
- itme 数组元素。
- index: 可选,该元素对应的下标;
- array: 可选,遍历的数组本身;
map(function(itme, index, array){})
修改
- 遍历数组,并且根据新的规则返回新数组。
- itme 数组元素。
- index: 可选,该元素对应的下标;
- array: 可选,遍历的数组本身;
// var newGoods = goods.map(function(item) { // // toFixed(2) 保留两位小数点 // item.priceFormate = '¥' + (item.price / 100).toFixed(2); // 添加新属性 // return item; // }); // console.log(newGoods);2.5 filterfilter(function(itme, index, array){})
筛选
- 遍历数组,并且根据规则返回符合条件的元素组成新数组。
- 如果没有找到符合条件的就返回一个空数组;
- itme 数组元素。
- index: 可选,该元素对应的下标;
- array: 可选,遍历的数组本身;
// var newGoods = goods.filter(function(item) { // // return item.price > 600000; // return item.count > 5; // });2.6 findfind(function(itme, index, array){})
查找
- 遍历数组,返回数组中满足条件的第一个值。
- 如果没有找到符合条件的就返回一个 undefined;
- itme 数组元素。
- index: 可选,该元素对应的下标;
- array: 可选,遍历的数组本身;
// var newGoods = goods.find(function(item) { // return item.price > 900000; // });2.7 everyevery(function(itme, index, array){})
- 遍历数组,如果数组中,每个元素都满足条件,则返回 turen。
- 如果没有找到符合条件的就返回一个空数组;
- itme 数组元素。
- index: 可选,该元素对应的下标;
- array: 可选,遍历的数组本身;
2.8 some
some(function(itme, index, array){})
- 遍历数组,如果数组中,只要有一个元素满足条件,则返回 turen。
- 如果没有找到符合条件的就返回一个空数组;
- itme 数组元素。
- index: 可选,该元素对应的下标;
- array: 可选,遍历的数组本身 。
3.1 冒泡排序4、Math() 对象
- 比较相邻的两个元素,比较大小交换位置;
console.time('冒泡排序:'); for(var k = 0; k < arr.length - 1; k++){ for(var i = 0; i < arr.length - 1 - k; i++){ if(arr[i] > arr[i + 1]){ var tem = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = tem; } } } console.timeEnd('冒泡排序:'); console.log(arr);3.2 选择排序
- 在未排序的序列中,找到最小的,放在开始位置;
- 再从剩余未排序元素中继续寻找较小的元素,然后放在已排序末尾。
console.time('选择排序: '); for (var n = 0; n < arr.length - 1; n++) { for (var j = n + 1; j < arr.length; j++) { if (arr[n] > arr[j]) { var tem2 = arr[n]; arr[n] = arr[j]; arr[j] = tem2; } } } console.timeEnd('选择排序: '); console.log(arr);
4.1 概念4.2 部分API
- 是一个内置对象,有很多方法,主要提供了一些常用的数学方法;
圆周率:
- Math.PI (常量都是大写)
随机数:
- Math.random() 得到 0 ~ 1 之间的数字
在指定范围内任意整数的公式:
- Math.floor(Math.random() * (max - min + 1) + min)
四舍五入:
- Math.round(参数1) 四舍五入
- Math.floor(参数1) 去掉小数点
- Math.ceil(参数1) 向上则取整
绝对值:
- Math.abs(参数1) 绝对值
其他:
- Math.max(参数1,参数2,参数3,…) // 返回最大值
- Math.min(参数1,参数2,参数3,…) // 返回最大值
- Math.min(…[数组]) 返回最大值 //使用数组时,使用 … es6 的展开符号
- math.pow(参数1,参数2) // 参数1 的 参数2 次幂
- math.log(参数1) // 返回 参数1 的自然对数
三角函数:
- Math.sign(x) 返回一个数的符号( + - 0 符号)
- Math.sin(x) 正弦
- Math.cos(x) 余弦
- Math.acos(x) 反余弦
- Math.asin(x) 反正弦
- Math.tan(x) 正切
- Math.atan(x) 反正切
相关文章
- ECMAscript - 初识 ECMAscript
- ECMAscript - 条件判断 & 循环
……



