js方法干货

数组[1,2,5]星期处理

const weekData = (arrData: any) => {
    const weekDays = [
        '周一',
        '周二',
        '周三',
        '周四',
        '周五',
        '周六',
        '周日',
        '不重复'
    ]
    return arrData.map((num: any) => weekDays[num - 1]).filter(Boolean)
}
const arr=[1,2,5]
//调用
const week= weekData (arr)//['星期一','星期二','星期五']

时间

const numStr = '1'

const result = numStr.padStart(2, '0')

console.log(result) // 输出 '01'
//举例
const a=1
const b=24
log(a.padStart(2, '0')+':'+b.padStart(2, '0'))//01:24

数组筛选数组方法

const firstArray = ['a', 'b'];// 筛选含有字符串 a,b的数组
const secondArray = [
  {name: 'a', id: '1'},
  {name: 'b', id: '1'},
  {name: 'c', id: '1'}
];
const filteredArray = secondArray.filter(item => {
  return firstArray.includes(item.name);
});
console.log(filteredArray); // 输出筛选后的数组  [{name: 'a', id: '1'},{name: 'b', id: '1'}]
 

 

把对应点击的数组放在数组最前方

const data = [
  {"idolName": "7.4上传", "idolId": "AD899"},
  {"idolName": "7.5", "idolId": "AD752"},
  {"idolName": "龚", "idolId": "AD534"},
  {"idolName": "11", "idolId": "AD857"},
  {"idolName": "审核", "idolId": "AD248"},
  {"idolName": "审批视频", "idolId": "AD633"}
];

// 假如我点击传的值是‘审核’,则对应把包含‘审核’的对象放在数组前方
data.sort((a, b) => {
  if (a.idolName === "审核") {
    return -1;   // a在b之前
  } else if (b.idolName === "审核") {
    return 1;    // a在b之后
  } else {
    return 0;    // 保持原有顺序
  }
});

console.log(data);


// 处理后data的结果
[
  {"idolName": "审核", "idolId": "AD248"},
  {"idolName": "7.4上传", "idolId": "AD899"},
  {"idolName": "7.5", "idolId": "AD752"},
  {"idolName": "龚", "idolId": "AD534"},
  {"idolName": "11", "idolId": "AD857"},
  {"idolName": "审批视频", "idolId": "AD633"}
]

JS对象去重

const arr = [
  { id: 1, name: '张三' },
  { id: 2, name: '李四' },
  { id: 1, name: '张三' },
];

const uniqueArr = Array.from(new Set(arr.map(item => JSON.stringify(item)))).map(item => JSON.parse(item));

console.log(uniqueArr);

把数组中对象不相同的返回回来(通过ID筛选数组)

我需要把第二个数组里面与第一个数组里idolId相同的清除,拿到不相同的数据

const arr1 = [
  { idolConfigId: null, idolId: 'AD239', idolName: '音频2-1', adRemark: '测试音频2-1', type: 1 },
  { idolConfigId: null, idolId: 'AD219', idolName: '音频2-1', adRemark: '测试音频2-1', type: 1 },
];

const arr2 = [
  { idolConfigId: null, idolId: 'AD299', idolName: '音频2-1', adRemark: '测试音频2-1', type: 1 },
  { idolConfigId: null, idolId: 'AD219', idolName: '音频2-1', adRemark: '测试音频2-1', type: 1 },
];

const result = arr2.filter(item2 => !arr1.some(item1 => item1.idolId === item2.idolId));

console.log(result);

每个月一号返回true 方法

我们定义了一个 isFirstDayOfMonth 函数。该函数会获取当前日期,并使用 getDate() 方法获取当前日期的天数。

然后,我们将获取的天数与 1 进行比较,如果相等,则返回 true,表示当前日期是某个月的第一天。否则,返回 false。

最后,我们调用 isFirstDayOfMonth 函数并将结果打印到控制台。

请注意,JavaScript 中的 Date 对象使用本地时区。因此,结果可能会因用户设备的时区设置而有所不同。

// 每个月一号返回true
export const monthlyOne = () => {
  function isFirstDayOfMonth() {
    const currentDate = new Date();
    const currentDay = currentDate.getDate();
  
    return currentDay === 1;
  }
  
  // 使用示例
  const isCurrentMonthFirstDay = isFirstDayOfMonth();
  return isCurrentMonthFirstDay
}

使用

// 使用
//在需要调用的页面引入
import {  monthlyOne } from '@/utils/index'

 log(monthlyOne())//返回true

星期判断

export const getDayDescription=(arr:number[]) =>{
  const weekdays = ['周一', '周二', '周三', '周四', '周五','周六','周日'];
  const weekends = ['周六', '周日'];

  // 判断是否连续
  function isContinuous(arr:number[]) {
    for (let i = 0; i < arr.length - 1; i++) {
      if (arr[i + 1] - arr[i] !== 1) {
        return false;
      }
    }
    return true;
  }
  // 判断是否为工作日
  function isWeekday(arr: number[]): boolean {
    console.log(arr.length);
    
    arr.sort((a, b) => a - b); // 将数组从小到大排序
    for (let i = 0; i < arr.length - 1; i++) {
      if (arr[i + 1] - arr[i] !== 1) { // 如果相邻两个数字的差不为1,则不是连续的
        return false;
      }
    }
    if(arr.length!==5){
      return false
    }
    return true; // 所有数字都连续,返回true
  }
 
  // 判断是否为周末
  function isWeekend(arr:number[]) {
    for (let i = 0; i < arr.length; i++) {
      if (!weekends.includes(weekdays[arr[i] - 1])) {
        return false;
      }
    }
    return true;
  }

  // 处理结果
  if(arr.length==1){
    switch (arr[0]) {
      case 1:
          return '星期一';
      case 2:
          return '星期二';
      case 3:
          return '星期三';
      case 4:
          return '星期四';
      case 5:
          return '星期五';
      case 6:
          return '星期六';
      case 7:
          return '星期日';
      default:
          return '不重复';
  }
  }
  if (arr.length === 7) {
    return '每天';
  } else
   if (isWeekday(arr)) {
    return '工作日';
  }else
   if (isContinuous(arr)) {
    return `${weekdays[arr[0] - 1]}~${weekdays[arr[arr.length - 1] - 1]}`;
  } else
  if (isWeekend(arr)) {
    return '周末';
  } else
   if (arr[0]==8) {
    return '不重复';
  } else {
    const days = arr.map((day:any) => weekdays[day - 1]);
    console.log(days.join(','));
    return days.join(',');
  }
}

// 使用示例
console.log(getDayDescription([1, 2, 3, 4, 5, 6, 7]));     // 输出:每天
console.log(getDayDescription([1, 2, 3, 4, 5]));          // 输出:工作日
console.log(getDayDescription([1,2,3]));                // 输出:周一~周三
console.log(getDayDescription([1, 3, 5, 6, 7]));          // 输出:周一、周三、周五、周六、周天
console.log(getDayDescription([8]));   //不重复  
console.log(getDayDescription([1]));     //星期一

设置input只能输入数字

oninput="value=value.replace(/[^\d]/g,'')" 
//例子 限制只能输入11位手机号
<el-input  v-model="form.phone" placeholder="请输入手机号码" oninput="value=value.replace(/[^\d]/g,'')" :maxlength="11"></el-input>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值