持续更新中...
1. every和some
相同点:every和some都有三个参数,即item-当前项,index-当前项的索引值,array-[数组]本身;都可循环遍历数组
不同点:
every相当于逻辑关系中的且,只有所有参数都满足条件时,才返回true,一旦有一个不满足,则逻辑中断,返回false;
some相当于逻辑关系中的或,只要有一个参数满足条件,就中断遍历,返回true,若遍历完所有参数,没有符合的项,返回false。
通俗一点就是 every:一假即假,some:一真即真
some
// 一真即真,有一个参数满足条件就返回true
let arr = [ 1, 2, 3, 4, 5, 6 ];
let result = arr.some((item, index) => item > 5)
console.log(result) // true
every
// 一假即假,有一个参数不满足条件就返回false
let arr = [ 1, 2, 3, 4, 5, 6 ];
let result = arr.every((item, index) => item > 5)
console.log(result) // false
some 循环遍历找符合条件的值,一旦找到,则不会继续迭代下去。
every 循环遍历是否符号条件,一旦有一个不符合条件,则不会继续迭代下去。
2. 数字字符串格式化,显示成千分位逗号
function solution(num) {
// 去除前导零
num = parseFloat(num).toString();
// 分离整数部分和小数部分
let [integerPart, decimalPart] = num.split('.');
// 处理整数部分的千分位逗号
let re = /(\d)(?=(\d{3})+(?!\d))/g;
integerPart = integerPart.replace(re, '$1,');
// 合并整数部分和小数部分
return decimalPart ? `${integerPart}.${decimalPart}` : integerPart;
}
function main() {
console.log(solution("-00.12412")); // 预期输出: '-0.12412'
console.log(solution("-1294512.12412")); // 预期输出: '1,294,512.12412'
console.log(solution("0000123456789.99")); // 预期输出: '123,456,789.99'
console.log(solution("0000123456789.9900")); // 预期输出: '123,456,789.99'
console.log(solution("987654321")); // 预期输出: '987,654,321'
console.log(solution("0098765432100")); // 预期输出: '98,765,432,100'
}
main();
3. 遍历树形结构(Tree),根据id找到对应的name(递归)
/**
* 遍历树形结构(Tree),根据id找到对应的name(递归)
* @param treeData
* @param id
* @param idField
* @param nameField
* @returns {*|null}
*/
export function getTreeName(treeData, id, idField = 'id', nameField = 'name') {
for (let i = 0; i < treeData.length; i++) {
let row = treeData[i]
if (row[idField] === id) {
return row[nameField]
} else {
if (row.children && row.children.length > 0) {
let res = getTreeName(row.children, id, idField, nameField)
if (res) {
return res
}
}
}
}
return null
}
4.momentJS的一些常用方法
1.isBetween
const now = this.$moment()
const start = this.$moment(startTime)
const end = this.$moment(endTime)
// 使用 isBetween 方法,第四个参数 '[]' 表示包含开始和结束时间
return now.isBetween(start, end, null, '[]')
具体含义如下:
now 是当前时间的 moment 对象
start 是开始时间的 moment 对象
end 是结束时间的 moment 对象
第三个参数 null 表示使用默认的时间单位
第四个参数 '[]' 表示时间范围的包含方式
关于 '[]' 参数的详细说明:
'[]' 表示包含开始时间和结束时间,即闭区间 [start, end]
'()' 表示不包含开始时间和结束时间,即开区间 (start, end)
'[)' 表示包含开始时间但不包含结束时间,即左闭右开区间 [start, end)
'(]' 表示不包含开始时间但包含结束时间,即左开右闭区间 (start, end]