首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能用"for...in“循环为对象的属性赋值

不能用"for...in“循环为对象的属性赋值
EN

Stack Overflow用户
提问于 2015-01-18 19:23:55
回答 1查看 2.4K关注 0票数 0

我的目标是:

代码语言:javascript
复制
var cornersAbs = {
    topLeftCorner: { x: center.x + orin.corners.topLeft.x, y: center.y + orin.corners.topLeft.y, OOB: false },
    topRightCorner: { x: center.x + orin.corners.topRight.x, y: center.y + orin.corners.topRight.y, OOB: false },
    bottomLeftCorner: { x: center.x + orin.corners.bottomLeft.x, y: center.y + orin.corners.bottomLeft.y, OOB: false },
    bottomRightCorner:{ x: center.x + orin.corners.bottomRight.x, y: center.y + orin.corners.bottomRight.y, OOB: false }
}

还有我的循环

代码语言:javascript
复制
for (var corner in cornersAbs) {
    corner.OOB = corner.x < 0 | corner.y < 0 | corner.x > canvas.width | corner.y > canvas.height;
}

似乎没有为corner.OOB属性分配任何值。

似乎没有任何帮助,即使我这样写循环:

代码语言:javascript
复制
for (var corner in cornersAbs) {
    cornersAbs.corner.OOB = cornersAbs.corner.x < 0 | cornersAbs.corner.y < 0 | cornersAbs.corner.x > canvas.width | cornersAbs.corner.y > canvas.height;
}

(我尝试用这种方式编写它,因为每次迭代的console.log(角)会打印"topLeftCorner“、"topRightCorner”等,而不是"cornersAbs.topLeftCorner“等等。然而,用这种方式编写循环会给我一个错误,说明cornersAbs.corner是未定义的。)

使用括号符号也没有帮助。

当我打印任何corner.OOB的值时,控制台会打印"false“(使每个corner.OOB无效的值)或”未定义“。

我已经测试了我读到的角x和角Y的位置,它们工作得很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-18 19:26:57

你想做的是:

代码语言:javascript
复制
cornersAbs[corner]=...

访问您正在查看的“角落”。

要查看子属性,您可以使用cornerAbs[corner].prop,它对按角引用的属性进行索引,并查看其中的prop

另一方面,cornerAbs.corner等同于cornerAbs["corner"],这不是您想要的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28013813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档