【问题标题】:Javascript hash on a set of numbers一组数字上的 Javascript 哈希
【发布时间】:2021-11-28 03:12:14
【问题描述】:

我需要获取一组数字的频率并对频率的“键”做一些工作,例如检查键(作为数字)是否连续。我很惊讶密钥是“字符串”类型的。有没有办法让键的类型为“数字”?

当然,我可以比较像if (parseInt(k2) == (parseInt(k1) + 1)) 这样的两个键,但这很尴尬。

谢谢

let freq = {} //frequency
let nums = [1,2,3]
nums.forEach(n => {
    if (freq[n] === undefined) {
        freq[n] = 1
    } else {
        freq[n] ++
    }
})
let uniq = Object.keys(freq)
console.log(typeof uniq[0])

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您可以改用 Map,它可以有任何类型的键 - 但它也有点冗长。

    const freq = new Map();;
    const nums = [1, 2, 3]
    for (const num of nums) {
      freq.set(
        (freq.get(num) || 0) + 1
      );
    }
    const firstKey = [...freq.keys()][0];
    console.log(typeof firstKey);

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多