arrays - object.keys 转换后的数组与其他数组不同?
问题描述
当我使用Object.keys
将 Object 转换为 Array,然后创建另一个看起来相同的 Array 时,它们会产生不同的结果。您能否解释一下,如何keys.forEach()
知道人员键的值,同时test.forEach()
将它们显示为“未定义”:
const person = {
key1: 'value1',
key2: 'value2',
key3: 'value3'
}
const keys = Object.keys(person)
const test = ['1', '2', '3']
keys.forEach(key => {
console.log(key)
console.log(person[key])
})
test.forEach(some => {
console.log(some)
console.log(person[some])
})
// key1
// value1
// key2
// value2
// key3
// value3
// 1
// undefined
// 2
// undefined
// 3
// undefined
解决方案
这是由于测试数组具有值['1', '2', '3']
而不是['key1', 'key2', 'key3']
您在undefined
输出中看到的是person['1']
等,实际上没有定义
推荐阅读
- python - 如何允许字典值枚举的行为类似于 Python 中的字典键枚举?
- python - Python - 使用 Flask 获取 URL 片段标识符
- firebase - 无法将我的 firebase 版本更新到 16.0.5
- java - 使用 Spring Boot 构建基本 Web 应用程序的不同方法?
- bash - bash - 根据 file2 中的 ID 在 file1 中查找名称
- assertj - Assertj + 使用元组时,对于一个字段如何检查它是否匹配多个值
- android-studio - Flutter 医生报告看到了两个 Android Studio 安装
- powershell - 在 powershell 中获取当前用户的 microsoft 帐户名称
- java - 布尔值不能在函数式编程java中取消引用
- unity3d - Unity 3d VR - 在控制器按钮上隐藏和显示模型点击