首页 > 解决方案 > 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

标签: arraysobject

解决方案


这是由于测试数组具有值['1', '2', '3']而不是['key1', 'key2', 'key3']

您在undefined输出中看到的是person['1']等,实际上没有定义


推荐阅读