栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ECMAScript - 数组 & Math() 对象

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ECMAScript - 数组 & Math() 对象

目录
  • 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.1 理解

数组也是对象(对象中特殊的结构)

  • 用于存储数据
  • 数据存储顺序是按顺序进行排列的
  • 存储的数据原则上讲是可以是任意类型;
1.2 创建

构造函数的写法:

  	var colors = new Array('red','blue','green');

字面量: (常用)

  	var colors = ['red', 'blue', 'green'];
1.3 length 属性

数组默认的属性,用于展示当前数组存储数据的长度。

  	数组名.length;

直接增加不存在的下标:

  • 若前方存在空标,则用空值占用;(一般不这样用)

     

1.4 下标
  • 数组中每一个元素都对应一个下标,
  • 下标 从 0 开始依次增大。
  • 最后一个元素的下标 = 数组长度(length) - 1;
     
1.5 访问数组元素
  	数组[下标];
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 个值
  • start: 开始下标,包含;
  • end:结束下标,不包含,如果不给该值,就截取剩下所有的元素。
     
1.7.8 sort()

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、遍历数组(循环)
2.1 for 循环
  	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 forEaach

forEaach(function(itme, index, array){})
没有规则,遍历数组

  • itme 数组元素。
  • index: 可选,该元素对应的下标;
  • array: 可选,遍历的数组本身;
2.4 map

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 filter

filter(function(itme, index, array){})
筛选

  • 遍历数组,并且根据规则返回符合条件的元素组成新数组。
  • 如果没有找到符合条件的就返回一个空数组;
  • itme 数组元素。
  • index: 可选,该元素对应的下标;
  • array: 可选,遍历的数组本身;

 

  	// var newGoods = goods.filter(function(item) {
  	//   // return item.price > 600000;
  	//   return item.count > 5;
  	// });
2.6 find

find(function(itme, index, array){})
查找

  • 遍历数组,返回数组中满足条件的第一个值。
  • 如果没有找到符合条件的就返回一个 undefined;
  • itme 数组元素。
  • index: 可选,该元素对应的下标;
  • array: 可选,遍历的数组本身;

 

  	// var newGoods = goods.find(function(item) {
  	//   return item.price > 900000;
  	// });
2.7 every

every(function(itme, index, array){})

  • 遍历数组,如果数组中,每个元素都满足条件,则返回 turen。
  • 如果没有找到符合条件的就返回一个空数组;
  • itme 数组元素。
  • index: 可选,该元素对应的下标;
  • array: 可选,遍历的数组本身;

 

2.8 some

some(function(itme, index, array){})

  • 遍历数组,如果数组中,只要有一个元素满足条件,则返回 turen。
  • 如果没有找到符合条件的就返回一个空数组;
  • itme 数组元素。
  • index: 可选,该元素对应的下标;
  • array: 可选,遍历的数组本身 。
3、排序(冒泡 & 选择)
3.1 冒泡排序
  • 比较相邻的两个元素,比较大小交换位置;

 

  	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、Math() 对象
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 - 条件判断 & 循环
    ……

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298986.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号