目录
- 数组方法
- 其他
数组方法
-
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??'') !== ''){
//...
}