我有一个有角度的物体阵列。我想用另一个元素替换数组中的整个元素。
export interface modelCourse{
var1: number;
var2: number;
}
我想做这样的事情:
updateResults(myCourse: modelCourse) {
this.allCourses.forEach(element => {
if (myCourse.Id=== element.Id) {
element = myCourse; // this part doesn't work as expected
}
});
}
哪里
allCourses: modelCourse[] = [];
allCourses拥有我所有的课程。
答案 0 :(得分:2)
如果只需要查找一个匹配的元素,则不需要遍历所有元素,只需使用findIndex
方法即可。这样可以查找所需元素的索引,而无需遍历所有元素。
然后您可以使用该索引来更新原始数组。
updateResults(myCourse: modelCourse) {
const foundElementIndex = this.allCourses.findIndex(element => myCourse.id === element.id);
this.allCourses[foundElementIndex] = myCourse;
}
我在这里进行了一次堆叠闪电战:https://stackblitz.com/edit/angular-hxxddn
答案 1 :(得分:0)
请使用void PhysicsEngine::init(float gravX, float gravY) {
m_stackAlloc.init(200000000);
m_world = (b2World*)m_stackAlloc.allocAligned(sizeof(b2World), alignof(b2World));
m_world = new(m_world)b2World(b2Vec2(gravX, gravY));
}
void PhysicsEngine::addGround(glm::vec2 pos, glm::vec2 size) {
PhysicsGround* physicsGround = (PhysicsGround*)m_stackAlloc.allocAligned(sizeof(PhysicsGround), alignof(PhysicsSprite));
physicsGround->init(pos, size, m_world);
}
void PhysicsGround::init(glm::vec2 pos, glm::vec2 size, b2World* world) {
b2BodyDef groundBodyDef;
groundBodyDef.position.Set(pos.x, pos.y);
m_body = world->CreateBody(&groundBodyDef);
m_shape.SetAsBox(size.x / 2.0f, size.y / 2.0f);
m_fixture = m_body->CreateFixture(&m_shape, 0.0f); // Exception thrown here
}
更新Array.map
。
this.allCourses