1、获取周
// 第一种
export function getDay() {
var today = new Date();
var dayOfWeek = today.getDay();
switch (dayOfWeek) {
case 0:
return '周日'
break;
case 1:
return '周一'
break;
case 2:
return '周二'
break;
case 3:
return '周三'
break;
case 4:
return '周四'
break;
case 5:
return '周五'
break;
case 6:
return '周六'
break;
}
}
// 第二种
export function week() {
return "周" + "日一二三四五六".charAt(new Date().getDay());
},
2、数字转汉字
export const numberToChinese =(num)=>{
const chineseNumArr = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
const chineseUnitArr = ['', '十', '百', '千', '万', '十', '百', '千', '亿', '十', '百', '千', '兆'];
let chineseStr = '';
let unit = 0;
let hasNonZero = false; // 用于标记是否遇到过非零数字
if (num === 0) {
return '零';
}
while (num > 0) {
const digit = num % 10;
console.log('digit: ', digit);
if (digit !== 0) {
chineseStr = chineseNumArr[digit] + chineseUnitArr[unit] + chineseStr;
hasNonZero = true;
} else {
if (hasNonZero) { // 只有在遇到过非零数字之后才添加零
chineseStr = chineseNumArr[digit] + chineseStr;
}
}
num = Math.floor(num / 10);
unit++;
}
return chineseStr;
}
3、总天数转成年月天数(用了上面转汉字的函数)
export const daysToYearsMonthsDays = (days)=>{
const years =
Math.floor(days / 365) > 0
? numberToChinese(Math.floor(days / 365)) + '年'
: ''
console.log('years: ', years)
const remainingDays = days % 365
console.log('remainingDays: ', remainingDays)
const months =
Math.floor(remainingDays / 30) > 0
? numberToChinese(Math.floor(remainingDays / 30)) +
'个月'
: ''
console.log('months: ', months)
const daysLeft =
remainingDays % 30 > 0
? numberToChinese(Math.ceil(remainingDays % 30)) + '天'
: ''
console.log('daysLeft: ', daysLeft)
return years + months + daysLeft
}
4、寻找字符串中出现最多的字符怎么实现
(1)字符串遍历 + for... in
循环对比
function findMostFrequentChar(str) {
// 创建一个空对象来存储字符出现的次数
const charCount = {};
// 遍历字符串,统计每个字符出现的次数
for (let char of str) {
charCount[char] = (charCount[char] || 0) + 1;
}
// 找到出现次数最多的字符和次数
let maxChar = '';
let maxCount = 0;
for (let char in charCount) {
if (charCount[char] > maxCount) {
maxChar = char;
maxCount = charCount[char];
}
}
return { char: maxChar, count: maxCount };
}
const str = "hello world";
const result = findMostFrequentChar(str);
console.log(`最频繁出现的字符是 "${result.char}",出现了 ${result.count} 次。`);
(2)字符串遍历 + sort
排序
function findMostFrequentChar(str) {
// 创建一个空对象来存储字符出现的次数
const charCount = {};
// 遍历字符串,统计每个字符出现的次数
for (let char of str) {
charCount[char] = (charCount[char] || 0) + 1;
}
// 将字符出现次数存储到数组中
const charCountArray = Object.entries(charCount);
// 对字符出现次数进行排序
charCountArray.sort((a, b) => b[1] - a[1]);
// 获取出现次数最多的字符和次数
const mostFrequentChar = charCountArray[0][0];
const frequency = charCountArray[0][1];
return { char: mostFrequentChar, count: frequency };
}
const str = "hello world";
const result = findMostFrequentChar(str);
console.log(`最频繁出现的字符是 "${result.char}",出现了 ${result.count} 次。`);
5、js 怎么判断对象为空
// (1) 使用 Object.keys() 方法:
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
const obj = {};
console.log(isEmpty(obj)); // true
const obj2 = { name: 'John' };
console.log(isEmpty(obj2)); // false
// (2) 使用 for...in 循环:
function isEmpty(obj) {
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
return false;
}
}
return true;
}
const obj = {};
console.log(isEmpty(obj)); // true
const obj2 = { name: 'John' };
console.log(isEmpty(obj2)); // false
// (3) 使用 JSON.stringify() 方法:
function isEmpty(obj) {
return JSON.stringify(obj) === '{}';
}
const obj = {};
console.log(isEmpty(obj)); // true
const obj2 = { name: 'John' };
console.log(isEmpty(obj2)); // false
6、js 计算本周的开始和结束日期
// (1) 假设周一为一周的开始
function getCurrentWeekDates() {
const today = new Date();
const dayOfWeek = today.getDay(); // 0 (周日) 到 6 (周六)
// 如果你希望周一为一周的开始,可以调整 dayOfWeek
const mondayOffset = (dayOfWeek === 0 ? -6 : 1) - dayOfWeek; // 如果是周日,则往回推6天,否则往回推1天
const startOfWeek = new Date(today);
startOfWeek.setDate(today.getDate() + mondayOffset); // 设置为本周的开始日期(周一)
const endOfWeek = new Date(startOfWeek);
endOfWeek.setDate(startOfWeek.getDate() + 6); // 设置为本周的结束日期(周日)
return {
start: startOfWeek,
end: endOfWeek
};
}
const currentWeek = getCurrentWeekDates();
console.log("本周开始日期:", currentWeek.start.toLocaleDateString());
console.log("本周结束日期:", currentWeek.end.toLocaleDateString());
// (2) 假设周日为一周的开始
function getCurrentWeekDates() {
const today = new Date();
const dayOfWeek = today.getDay(); // 0 (周日) 到 6 (周六)
const sundayOffset = -dayOfWeek; // 设置为本周的开始日期(周日)
const startOfWeek = new Date(today);
startOfWeek.setDate(today.getDate() + sundayOffset);
const endOfWeek = new Date(startOfWeek);
endOfWeek.setDate(startOfWeek.getDate() + 6); // 设置为本周的结束日期(周六)
return {
start: startOfWeek,
end: endOfWeek
};
}
const currentWeek = getCurrentWeekDates();
console.log("本周开始日期:", currentWeek.start.toLocaleDateString());
console.log("本周结束日期:", currentWeek.end.toLocaleDateString());