#arrays #object
Вопрос:
Когда я использую Object.keys
преобразование объекта в массив, а затем создаю другой массив, который выглядит одинаково, они получают разные результаты. Не могли бы вы объяснить, пожалуйста, как 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:
Это связано с тем, что тестовый массив имеет значения ['1', '2', '3']
вместо ['key1', 'key2', 'key3']
То , что вы видите в undefined
выходных person['1']
данных, и т. Д., Которые на самом деле не определены
Ответ №2:
Метод forEach() выполняет предоставленную функцию один раз для каждого элемента массива.
var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
var result = Object.keys(obj).map(function(key) {
return [Number(key), obj[key]];
});
console.log(result);