长梦不多时

文章 评论 浏览 28

长梦不多时 2022-05-04 13:55:03
function findChar(char) {
    let obj = {};
    let reg = /(w)1/g;

    char.match(reg).map(str = >Object.keys(obj).indexOf(str) > -1 ? obj[str] = obj[str] + str.length: obj[str] = str.length);

    return obj
}

findChar('abbkejsbbcccwqaa');

第 114 题:找出字符串中连续出现最多的字符和个数

长梦不多时 2022-05-04 13:54:17

我是这样理解的:

left + right > container 则此时需要收缩,反正则需要扩张

收缩计算过程:

  • 1.计算收缩值:500 + 400 - 600 = 300
  • 2.计算总的收缩权重值:500 * 2 + 400 × 1 = 1400
  • 3.计算项目收缩空间:(项目宽度 - 项目宽度 × 总溢出空间 × flex-shrink / 总权重)
    left = 500 - 500 × 300 × 2 / 1400 ≈ 285.71
    right = 400 - 400 × 300 × 1 / 1400 ≈ 314.28

扩张计算过程:

  • 1.计算扩张总内容 container - (left + right)
  • 2.计算每份扩张值:总内容/(left(flex-grow) + right(flex-grow))
  • 3.计算项目夸张大小:(项目宽度 + 每份扩张值 × 扩张系数(flex-grow))

应该是这样
//如果left + right = container,flex-grow和flex-shrink 失效;

第 155 题:求最终 left、right 的宽度

长梦不多时 2022-05-04 13:54:14
Array.prototype.spliceMy = function (startIndex, endIndex, ...item) {
    if (startIndex < 0) {
        startIndex = this.length + startIndex
        endIndex = this.length + startIndex + endIndex
    } else {
        endIndex = startIndex + endIndex
    }
    let arrStart = this.slice(0, startIndex)
    let arrEnd = this.slice(endIndex, this.length)
    console.log(arrStart, arrEnd)
    let returnArr = this.slice(startIndex, endIndex)
    let newArr = arrStart.concat(item).concat(arrEnd)
    for (let i = 0; i < newArr.length; i++) {
        this[i] = newArr[i];
    }
    this.length = newArr.length
    return returnArr
}

第 158 题:如何模拟实现 Array.prototype.splice

长梦不多时 2022-05-04 13:42:56

@VimMing 已修复,多谢指正。

JavaScript 中浅拷贝和深拷贝的实现

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文