JS Tree数据遍历 处理时间戳 随机生成ID

本文介绍了两种树结构遍历方法——深度优先和广度优先,并展示了如何在JavaScript中实现。同时,文章还涵盖了获取当前时间戳并将其转换为指定格式的日期,以及如何生成不重复的唯一ID的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//方法一:深度优先遍历

function traverseTree(node) {
  console.log(node.data);
  if (node.children) {
    node.children.forEach(child => {
      traverseTree(child);
    });
  }
}

//方法二:广度优先遍历

function traverseTree(node) {
  let queue = [node];
  while (queue.length) {
    let currentNode = queue.shift();
    console.log(currentNode.data);
    if (currentNode.children) {
      queue.push(...currentNode.children);
    }
  }
}
// 获取当前时间戳
let timestamp = Date.now();

// 转换为指定格式的日期
let date = new Date(timestamp);
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
let hour = date.getHours();
let minute = date.getMinutes();
let second = date.getSeconds();

// 输出指定格式的日期
console.log(`${year}-${month}-${day} ${hour}:${minute}:${second}`);

//定义一个函数,用于生成不重复的id
function generateUniqueId() { 
    //定义一个字符串,用于存储生成的id 
    let idString = ''; //定义一个字符串,用于存储可用的字符
    let availableChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; //循环生成id
    for (let i = 0; i < 10; i++) { 
        //随机生成一个可用字符的索引 
        let index = Math.floor(Math.random() * availableChars.length); 
        //将可用字符添加到id字符串中 
        idString += availableChars[index];
    } 
    //返回生成的id 
    return idString; 
}
### Vue中使用时间戳生成随机数字字符串的方法 在Vue项目中,可以通过结合时间戳随机生成唯一的数字字符串。以下是一个基于时间戳随机数的实现方法,并提供了示例代码。 #### 方法描述 通过`Date.now()`获取当前时间戳,并结合`Math.random()`生成一个随机数。将两者组合后,可以生成一个唯一的数字字符串。此方法简单高效,适用于大多数场景[^1]。 #### 示例代码 ```javascript // 定义生成随机数字字符串的方法 function generateRandomNumberString() { // 获取当前时间戳 const timestamp = Date.now(); // 生成一个随机数,并将其转换为整数 const randomNum = Math.floor(Math.random() * 10000); // 可调整范围 // 将时间戳随机数组合 return `${timestamp}${randomNum}`; } // 在Vue组件中使用 export default { methods: { getRandomNumberString() { return generateRandomNumberString(); } }, mounted() { console.log(this.getRandomNumberString()); } }; ``` 上述代码中,`generateRandomNumberString`函数通过组合时间戳随机生成唯一的数字字符串。时间戳确保了唯一性,而随机数增加了额外的随机性[^1]。 #### 扩展方法 如果需要生成固定长度的数字字符串,可以参考以下方法: ```javascript function generateFixedLengthNumberString(length) { let result = ''; const characters = '0123456789'; const charactersLength = characters.length; for (let i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; } // 示例:生成10位数字字符串 console.log(generateFixedLengthNumberString(10)); ``` 此方法允许用户指定生成的数字字符串长度,灵活性更高[^2]。 ### 注意事项 在实际开发中,如果需要更高的唯一性和安全性,可以考虑使用`uuid`或`nanoid`库。这些库提供了更强大的唯一标识符生成能力,适合用于分布式系统或高并发场景。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值