perf(core): replace Array.forEach loops
This commit is contained in:
@@ -114,7 +114,7 @@ export function applyChanges<
|
||||
| EdgeRemoveChange
|
||||
)[]
|
||||
|
||||
addRemoveChanges.forEach((change) => {
|
||||
for (const change of addRemoveChanges) {
|
||||
if (change.type === 'add') {
|
||||
const index = elements.findIndex((el) => el.id === change.item.id)
|
||||
|
||||
@@ -128,11 +128,11 @@ export function applyChanges<
|
||||
elements.splice(index, 1)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const elementIds = elements.map((el) => el.id)
|
||||
|
||||
elements.forEach((element) => {
|
||||
for (const element of elements) {
|
||||
const currentChanges = changes.filter((c) => (<any>c).id === element.id)
|
||||
|
||||
for (const currentChange of currentChanges) {
|
||||
@@ -198,7 +198,7 @@ export function applyChanges<
|
||||
break
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return elements
|
||||
}
|
||||
|
||||
@@ -169,11 +169,11 @@ function getConnectedElements<T extends Node = Node>(
|
||||
|
||||
const origin = dir === 'source' ? 'target' : 'source'
|
||||
|
||||
edges.forEach((edge) => {
|
||||
for (const edge of edges) {
|
||||
if (edge[origin] === id) {
|
||||
connectedIds.add(edge[dir])
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return nodes.filter((n) => connectedIds.has(n.id))
|
||||
}
|
||||
@@ -415,7 +415,9 @@ export function getConnectedEdges<E extends Edge>(nodesOrId: Node[] | string, ed
|
||||
if (typeof nodesOrId === 'string') {
|
||||
nodeIds.add(nodesOrId)
|
||||
} else if (nodesOrId.length >= 1) {
|
||||
nodesOrId.forEach((n) => nodeIds.add(n.id))
|
||||
for (const n of nodesOrId) {
|
||||
nodeIds.add(n.id)
|
||||
}
|
||||
}
|
||||
|
||||
return edges.filter((edge) => nodeIds.has(edge.source) || nodeIds.has(edge.target))
|
||||
@@ -424,7 +426,9 @@ export function getConnectedEdges<E extends Edge>(nodesOrId: Node[] | string, ed
|
||||
export function getConnectedNodes<N extends Node | { id: string } | string>(nodes: N[], edges: Edge[]) {
|
||||
const nodeIds = new Set()
|
||||
|
||||
nodes.forEach((node) => nodeIds.add(typeof node === 'string' ? node : node.id))
|
||||
for (const node of nodes) {
|
||||
nodeIds.add(typeof node === 'string' ? node : node.id)
|
||||
}
|
||||
|
||||
const connectedNodeIds = edges.reduce((acc, edge) => {
|
||||
if (nodeIds.has(edge.source)) {
|
||||
|
||||
@@ -101,7 +101,7 @@ export function getClosestHandle(
|
||||
let closestHandles: { handle: ConnectionHandle; validHandleResult: ValidHandleResult }[] = []
|
||||
let minDistance = Number.POSITIVE_INFINITY
|
||||
|
||||
handles.forEach((handle) => {
|
||||
for (const handle of handles) {
|
||||
const distance = Math.sqrt((handle.x - pos.x) ** 2 + (handle.y - pos.y) ** 2)
|
||||
|
||||
if (distance <= connectionRadius) {
|
||||
@@ -121,7 +121,7 @@ export function getClosestHandle(
|
||||
minDistance = distance
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (!closestHandles.length) {
|
||||
return { handle: null, validHandleResult: defaultValidHandleResult() }
|
||||
|
||||
Reference in New Issue
Block a user