Javascript 中的数组错误:未捕获的类型错误:无法读取未定义的属性“x”

我在 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'”。


繁花如伊
浏览 171回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript