【问题标题】:String data type of array key when iterated via for..in通过 for..in 迭代时数组键的字符串数据类型
【发布时间】:2022-11-04 21:04:21
【问题描述】:

我有一个数组。据我所知,数组键是 javascript 中的整数。

const array1 = ['a', 'b', 'c']; 

当我得到并记录键时,我得到一个整数数组。

console.log([...array1.keys()]);

// Outputs=>  [0, 1, 2]

但是在 for...in 循环中,键是字符串。但是为什么以及有没有办法为整数键键入强制转换?

for (const key in array1) {
  console.log("Type of key "+key+" is "+ typeof key);
}

/* outputs:
Type of key 0 is string
Type of key 1 is string
Type of key 2 is string
*/

【问题讨论】:

    标签: javascript ecmascript-6


    【解决方案1】:

    但是为什么以及有没有办法为整数键类型转换?

    数组实际上只是对象。
    数组元素只是对象属性,其钥匙是它们各自的索引。
    属性键始终是字符串值或符号值。

    您可以使用 Number 函数或一元加号运算符将任何字符串转换为数字:

    Number("5")
    +"5"
    

    但是you should probably avoid using for...in to iterate over arrays

    【讨论】:

      【解决方案2】:

      您可以使用 parseInt() 函数将字符串值转换为整数,

      前任: parseInt("1"); //返回 1

      【讨论】:

        猜你喜欢
        • 2012-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-28
        • 2018-03-29
        • 2011-10-30
        • 2020-05-29
        • 1970-01-01
        相关资源
        最近更新 更多