频道澳门葡京手机版网址
登录注册
澳门葡京手机版网址 > 澳门葡京手机版网址 > web前端 > HTML/CSS > 正文
不能使用for循环,传入n和m,生成一个长度为n,每一项都是m的数组
2019-01-21 09:39:41           
收藏   我要投稿

逛知乎的时候看到一个问题,不能使用for循环,传入n和m, 生成一个长度为n,每一项都是m的数组。第一反应是递归,然后再想到正则,还在思考中...

递归法

function getArr(n,m) {
    // 方法一: 递归
    let arr = new Array(n)
    function setData (index) {
        if (index >= 0) {
            if (!arr[index]) {
                arr[index] = m
            }
            setData(index - 1)
        }
    }
    setData(arr.length - 1)
    return arr
} 
getArr(10, 'aa') // ["aa", "aa", "aa", "aa", "aa", "aa", "aa", "aa", "aa", "aa"]

正则法

function getArr(n,m) {
    // 方法二: 正则 (缺点:当传入的数据带,时,以,为分隔符会出错,逻辑还需要优化)
    let str = new Array(n).join(' ') // 生成对应长度的字符串
    str = str.replace(/\s/g, m)     // 使用正则替换得到对应的字符串
    str = str.replace(new RegExp(`(${m})`, 'g'), '$1,') // 得到逗号分隔的字符串
    str = str.substring(0, str.length - 1)
    return str.split(',')
} 
getArr(3, '12345') // ["12345", "12345", "12345"]
点击复制链接 与好友分享!回澳门葡京手机版网址澳门葡京手机版网址
相关TAG标签 for 循环 数组
上一篇:使用VSCode调试javascript/typescript的一个技巧
下一篇:JavaScript之实现一个ES6Promise
相关文章
图文推荐
文章
推荐
· 5月5日App Store排名大地震之后的五个
· 林立祥:分享wins1818的网络营销推广方
· 盘点2014年中国互联网十大成功营销案例
· 云爪分析:企业网络营销如何评估外包公
· QQ空间营销背后的用户多体验
· 十大网络推广企业特点解读
· 微博营销:安妮告诉大家依然是时代前沿
· 浅谈:地方网站推广大招之——三板斧
· win7激活工具
· win10激活工具
· win7激活工具旗舰版
· office2010激活密钥
· windows7激活密钥
· office2010激活工具
· 小马激活工具
· win10激活工具
点击排行

关于大家 | 联系大家 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 澳门葡京手机版网址_澳门新莆京娱乐_www.88807.com - 点此进入--致力于做实用的IT技术学习网站

XML 地图 | Sitemap 地图