Я сталкиваюсь с "Uncaught TypeError: Невозможно прочитать свойство 'x' of undefined" в частях newEntry.x.Я не уверен, почему он не будет читать объекты внутри цикла for, поскольку в консоли он, кажется, распознает их значения.
Я пишу функцию, которая возвращает расширенный массив с серединамисмежные объекты.Это делается для определенного числа итераций, следовательно, для вложенного цикла for.Я не уверен, что делать, так как я пытался изменить цикл for и сплайс, но потерпел неудачу.
function newList(iterations) {
for (let i = 0; i < iterations; i += 1) {
let concordiaLogo = [
{ x: 12.5, y: -100 },
{ x: 12.5, y: -112.5 },
{ x: 12.5, y: -125 },
{ x: 68.75, y: -68.75 },
{ x: 125, y: -12.5 },
{ x: 112.5, y: -12.5 },
{ x: 100, y: -12.5 },
{ x: 100, y: 0 },
{ x: 100, y: 12.5 },
{ x: 112.5, y: 12.5 },
{ x: 125, y: 12.5 },
{ x: 68.75, y: 68.75 },
{ x: 12.5, y: 125 },
{ x: 12.5, y: 112.5 },
{ x: 12.5, y: 100 },
{ x: 0, y: 100 },
{ x: -12.5, y: 100 },
{ x: -12.5, y: 112.5 },
{ x: -12.5, y: 125 },
{ x: -68.75, y: 68.75 },
{ x: -125, y: 12.5 },
{ x: -112.5, y: 12.5 },
{ x: -100, y: 12.5 },
{ x: -100, y: 0 },
{ x: -100, y: -12.5 },
{ x: -112.5, y: -12.5},
{ x: -125, y: -12.5 },
{ x: -68.75, y: -68.75 },
{ x: -12.5, y: -125 },
{ x: -12.5, y: -112.5 },
{ x: -12.5, y: -100 },
{ x: 0, y: -100 }
]
for (let i = 0; i < (concordiaLogo.length-1) * 2; i += 2) {
let newEntry = { x: 0, y: 0 };
newEntry.x = (concordiaLogo[i].x + concordiaLogo[i+1].x)/2;
newEntry.y = (concordiaLogo[i].y + concordiaLogo[i+1].y)/2;
concordiaLogo.splice(i + 1, 0, newEntry);
}
}
return concordiaLogo;
}
При вводе 3 я ожидал массив 32 * 2** 3, но он просто возвращает «Uncaught TypeError: Невозможно прочитать свойство 'x' из неопределенного."