我在 newEntry.x 部分遇到“Uncaught TypeError: Cannot read property 'x' of undefined”。我不确定为什么它不会读取 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 的数组,但它仅返回“未捕获的类型错误:无法读取未定义的属性 'x'”。
相关分类