我在 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'”。
添加回答
举报
0/150
提交
取消