目录

  • 数组方法
  • 其他

数组方法

  • includes:判断一个数组是否包含一个指定的值,如果是返回 true,否则false
  • forEach:本身是不支持的 continue 与 break 语句的,我们可以通过 some 和 every 来实现。
  • map:方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。(1、不会对空数组进行检测。2、不会改变原始数组。)
  • filter:方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
  • some:如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。
  • every:如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。
  • reduce:接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
let arr = [1, 2, 3]
	// reduce(function(初始值或者计算结束后的返回值, 当前元素, 元素的索引, 当前元素所属的数组对象), 传递给函数的初始值)
	let sum = arr.reduce(function(prev, cur, index, arr){
		// 中间计算,return返回
		return prev + cur
	},0)
	console.log(sum) // 6
  • find(ES6):当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的第一个元素的值,之后的值不会再调用执行函数。(如果没有符合条件的元素返回 undefined)
  • findIndex(ES6):当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。(如果没有符合条件的元素返回 -1)
  • for...of(ES6):用于替代 for…in 和 forEach() ,并且支持新的迭代协议。它可用于迭代常规的数据类型,如 Array 、 String 、 Map 和 Set 等等。
let mySet = [1, 2, 3];
	// 遍历整个 set
	for (let item of mySet) {
	  console.log(item);
	}
	// 只遍历 key 值
	for (let key of mySet.keys()) {
	  console.log(key);
	}
	// 只遍历 value
	for (let value of mySet.values()) {
	  console.log(value);
	}
	// 遍历 key 和 value ,两者会相等
	for (let [key, value] of mySet.entries()) {
	  console.log(key + " = " + value);
	}

其他

  • 数组去重
member = [...new Set(member)]
  • 扁平化数组
// 一个部门JSON数据中,属性名是部门id,属性值是个部门成员id数组集合,现在要把有部门的成员id都提取到一个数组集合中。
const deps = {
    '采购部':[1,2,3],
    '人事部':[5,8,12],
    '行政部':[5,14,79],
    '运输部':[3,64,105],
}
let member = Object.values(deps).flat(Infinity);
  • 获取对象属性值
// const name = obj && obj.name;
// ES6中的可选链操作符
const name = obj?.name;
  • 输入框非空的判断
// if(value !== null && value !== undefined && value !== ''){}
// es6中新出的空值合并运算符
if((value??'') !== ''){
  //...
}